$.ajax 跨域请求的问题

前端代码:
把图片转化成二进制上传
clipboard.png

ajax返回的回调对象会拼在url上,会报一下错误,

fastcgi request record is too big

要怎么解决?

阅读 2.8k
3 个回答

jsonp是get形式,承载的信息量有限,所以信息量较大时CORS是不二选择.
所以你用 type: 'post'

请求地址(假设xxx.php)加入几个头部:

// 建议不要填写 *
header("Access-Control-Allow-Origin: * ");
// 设置只允许POST请求跨域
header("Access-Control-Request-Method: POST"); 

js脚本, 其它都不变, 修改dataTypejson

$.ajax({
    ...,
    dataType: 'json'
});

详细cors内容

更正一个知识:

// value 值只能为 * 或者 [http|https]://hostname
header("Access-Control-Allow-Origin: * "); 

域名要求完整, 如果想要允许多个域名进行跨域请求, 可以参照如下代码

<?php
$allowOrigins = array("http://www.a.com", "http://www.b.com");

if (in_array($allowOrigins, $_SERVER['HTTP_ORIGIN'])) {
    header("Access-Control-Allow-Origin: ". $_SERVER["HTTP_ORIGIN"]); 
}

这个貌似不是跨域的问题,是服务端不允许上传这么大的文件,修改一下服务端上传文件大小限制。

可以把图片做一些压缩或者剪裁处理吧,如果服务器是tomcat的话,可以修改server.xml配置请求的限制。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题