今天研究了一些用jquery $.ajax跨域的方法,总结了一些注意事项以下:jquery
首先,跨域JSONP不是AJAX。它不使用XMLHttpRequest。只不过是一个动态脚本元素加载JavaScript代码。 ajax
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.json
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.app
其次,要使用get访问(type:get)。less
第三,async要为true(默认为true) 。dom
Cross-domain requests and dataType: "jsonp"
requests do not support synchronous operation.async
第四,cache要设为false(默认为true)。jsonp
Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to the URL unless the cache
option is set to true
.code
最后设置一下jsonp和jsonpCallback就ok了。