jQuery.support.cors = true;
http://blog.csdn.net/jupiter37/article/details/25694289
jQuery ajax跨域调用出现No Transport
IE8下出现的问题,chrome正常,找到了这篇文章
http://www.cnblogs.com/Curious/p/3423275.html
//之前没有加这句老是提示no transport,我没去深想。
jQuery.support.cors = true;
$.ajax
({
type: "POST",
contentType: "application/x-www-form-urlencoded",
dataType: "html",
url: "http://www.*****.com", //这里是网址
success:function(data){alert(data);},
timeout:30000,
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
jquery.support.cors只是对CORS协议的一种实现,具体可以看jQuery的源代码,这里不多说。
附上几个很好的参考资料:
http://newhtml.net/using-cors/
http://www.kimhou.com/?p=222
http://blog.csdn.net/nuccch/article/details/43086843
解决IE下返回json数据提示文件保存到问题
在IE9,10,11下,当服务器端返回数据格式为json,且明确设置Content-Type为”application/json;charset=utf-8“时,会提示文件下载。如图所示:
解决办法是修改Content-Type为”text/html;charset=utf-8“,然后在前端对数据做一次JSON编码再进行使用。
该问题只在IE系列下存在,在FF和Chrome上均正常。
详见:http://www.oschina.net/question/223750_123703
http://www.shagua.name/post/17.html
JQUERY获取JSON时IE浏览器提示UNDEFINED错误的解决办法
于是,我用Chrome浏览器分别抓取了可以正常交互的JSON和产生错误的JSON数据,然后对它们的Header部分进行对比:
这是报错JSON的Header部分:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 23 Jun 2014 13:19:21 GMT
以及(添加utf8编码后):
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=utf8
Transfer-Encoding: chunked
Date: Mon, 23 Jun 2014 13:19:21 GMT
这是正常JSON的Header部分:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 920
Date: Mon, 23 Jun 2014 13:27:10 GMT
除去HTTP版本号、状态码、服务器名称以及响应时间,真正不同的只有两行,即第三行和第四行。我随后经过查阅资料得知,“Transfer-Encoding: chunked”和“Content-Length: XXX”是两种不同的传输方式,后者传输的内容长度是固定的,而前者,则适用于不断向浏览器端输出内容的场景。所以,真相只有一个——编码问题!!于是我把编码中的“utf8”改成了“utf-8”,再调试,问题果然华丽丽地解决了!
因此,原因就是 —— 第一个Header中没有添加字符集;第二个Header中把“UTF-8”字符集的格式写错了,旧版的IE浏览器不能识别编码,仅此而已。所以如果你在写程序的过程中也遇到了JSON变量是“undefined”的情况,不妨先去看看是不是编码出了问题,因为旧版IE浏览器对编码格式的书写太敏感了。