>  Q&A  >  본문

javascript - ajaxupload 跨域上传文件 ,能返回值,但是总是进error,不进sucess ,为什么?

$.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);
        }
    }) 
迷茫迷茫2734일 전556

모든 응답(3)나는 대답할 것이다

  • 世界只因有你

    世界只因有你2017-05-16 13:05:07

    jsonp 크로스 도메인은 get 모드만 지원합니다. 프런트엔드가 post 모드로 설정되어 있어도 자동으로 get 모드로 변환됩니다.
    jsonp의 구현 방법은 ajax의 jsonp가 이를 캡슐화한다는 점을 제외하면 실제로 스크립트 요청 주소와 동일합니다. jsonp는 POST 방법을 지원하지 않습니다. 따라서 서버측 코드가 post 메소드를 사용하는 경우에는 요청할 수 없습니다.
    물론 크로스도메인 통신을 위해 억지로 포스트 방식을 사용하게 된다면 할 수 있는 일이 없습니다.
    클라이언트 측 변경:
    ``
    추가: crossDomain: true
    수정: dataType: "json"
    ``
    서버 측 추가:

    으아악

    할 수는 있지만 단점도 있고 요청 시간이 상대적으로 길다는 점은 직접 판단해보시면 좋을 것 같습니다.

    마지막으로 Stackoverflow에 관련 질문 게시물을 첨부하세요:
    http://stackoverflow.com/ques...

    회신하다
    0
  • 为情所困

    为情所困2017-05-16 13:05:07

    도메인 전반에 걸쳐 Get for Jsonp를 사용한 기억이 납니다. .근데 굳이 포스팅을 하라고 하면 http://www.jb51.net/article/6...이 있는데 해보지는 않았습니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:07

    먼저 크로스 도메인과 jsonp 관련 지식을 정리해보겠습니다
    jsonp는 스크립트 태그로 만들어집니다
    글이 크로스 도메인일 경우 백엔드에 Access-Control-Allow-Origin을 추가해야 합니다

    회신하다
    0
  • 취소회신하다