jquery fileupload跨域

时间:2014-09-05 06:28:29

标签: php jquery jquery-file-upload

我有一个小问题我需要使用jquery Blueimp Fileupload创建一个文件上传器到远程服务器,如果我在本地工作进行测试它现在完全正常工作,我在现场测试它,我有一个交叉来源的问题资源共享。

现在,我如何在不使用jsonp的情况下从另一个域检索json响应,因为我尝试了jsonp并且它不能与fileuploader一起工作所以现在我想单独使用json并且如果可能的话得到我需要的响应

我也试过把回调=?在网址结尾..也没有用

或者如果可能的话我如何将jsonp与这个文件上载器集成

$( '#fileuploader' ).fileupload( {
        sequentialUploads: true, 
        url: 'http://www.domain.com/test/upload?callback=?',
        dropZone: $( '#fileuploader' )
} );

服务器端这是在另一个域

echo json_encode( array( 'test' => 'value1') );

另外:我不允许使用ftp / curl ..谢谢

3 个答案:

答案 0 :(得分:1)

您可以在服务器上允许CORS请求:

   header("Access-Control-Allow-Origin:*");
   header("Access-Control-Allow-Methods: POST, GET, OPTIONS");

当在服务器上启用CORS时,Ajax首先发送OPTIONS请求以检测服务器是否允许CORS请求。如果启用,则发送实际请求。

答案 1 :(得分:1)

如果您已经按照上面的建议在远程服务器上允许了CORS策略,并且您仍然收到Cross Origin错误,则可能是您的代码中还有其他功能无效。很多时候Firebug或类似工具显示Cross Origin错误,实际上它是404或其他东西。要回答的第一个问题是,您是否真的在CORS飞行前请求/响应。那是你的许可证。在herehere

查看这些帖子

答案 2 :(得分:1)

您可以考虑使用iframe transport option。这样您就可以远离不支持跨域文件上传的浏览器问题,例如我们旧的(但仍然广泛使用的)朋友IE 9或以前的版本。

希望这有帮助。