javascript - ajaxupload 跨域上传文件 ,能返回值,但是总是进error,不进sucess ,为什么?
迷茫
迷茫 2017-05-16 13:03:07
0
3
564

$.ajaxFileUpload({

        url:"http://192.168.0.222:8080/Erp_V0.1/admin/upload/uploader.php",   //处理图片的脚本路径
        type: 'post',       //提交的方式
        data: upload_arr,//自定义参数
        secureuri :false,   //是否启用安全提交
        fileElementId :id,     //file控件ID
        dataType : "jsonp",//数据类型为jsonp
        jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数
        success : function (data){  //提交成功后自动执行的处理函数
            alert(1111);
            alert(data);
        },
        error:function(data,status,e){
            alert(2222);
            alert(e);
            alert(JSON.stringify(data));
            alert(status);
        }
    }) 
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(3)
世界只因有你

jsonp跨域只支持get方式,就算你前端这里设置成post方式,也会自动转换成get方式。
jsonp的实现方式其实就是<script>脚本请求地址的方式一样,只是ajax的jsonp对其做了封装,可想而知,jsonp是不支持POST方式的。因此,你服务器端代码如果用post方式是请求不了的。
当然了,如果你强行要用post方式跨域,也不是没有办法。
客户端更改:
``
添加:crossDomain: true
修改:dataType: "json"
``
服务端添加:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');

虽然可以做到,但有缺点,请求时间比较长,你自己衡量一下利弊吧。

最后附上一个Stackoverflow的相关问题贴:
http://stackoverflow.com/ques...

为情所困

我记得Jsonp跨域用Get。.不过你非要Post网上有个http://www.jb51.net/article/6...,我没试。

巴扎黑

先去捋清除跨域,jsonp相关的知识吧
jsonp是用的script标签做的
如果post要跨域需要后端添加Access-Control-Allow-Origin

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage