首页 > 代码库 > 关于jQuery中$.ajax()跨域

关于jQuery中$.ajax()跨域

今天研究了一些用jquery $.ajax跨域的方法,总结了一些注意事项如下:

     首先,跨域JSONP不是AJAX。它不使用XMLHttpRequest。只不过是一个动态脚本元素加载JavaScript代码。   

Cross-domain JSONP isn’t AJAX at all. It doesn’t use XMLHttpRequest. It’s nothing more than a dynamic script element that loads JavaScript code.

You can’t do a POST with a dynamic script element. Where would you put the POST data?

I don’t know what the $.ajax code is trying to do – maybe it should fail in a more informative way. It will fail one way or another regardless.

 

     其次,要使用get访问(type:get)。

 

     第三,async要为true(默认为true) 。

       Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation.

 

     第四,cache要设为false(默认为true)。

       Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to the URL unless the cache option is set to true.

 

     最后设置一下jsonp和jsonpCallback就ok了。