今天研究了一些用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了。