在IE的请求中设置AJAX内容类型标头
从Internet Explorer发送跨域jquery ajax http请求时,是否可以将http内容类型请求标头设置为’application / json’?
我们正在尝试点击REST WCF服务,该服务在格式化响应时解释请求标头中的内容类型。 现在,无论我们在请求标头中放入什么,它总是以XML格式返回数据。
我们已经尝试使用jquery.iecors.js插件扩展了jquery ajax调用以使用XDomainRequest对象,但仍然忽略了我们的jquery ajax调用中设置的内容类型。
这是我们的ajax调用的样子:
makeGETRequest: function (requestUrl) { return $.ajax({ type: "GET", url: requestUrl, contentType: 'application/json', dataType:'json', cache: false }); }
只需将content-type作为参数之一传递给.ajax
方法:
var retval = jQuery.ajax({ type:'post', url: url, contentType: 'application/json', data: JSON.stringify(data) });
是的,您可以使用contentType
参数:
$.ajax({ url: '/someurl', type: 'POST', contentType: 'application/json', data: JSON.stringify({ foo: 'bar' }), success: function(result) { } });
发送请求:
POST /someurl HTTP/1.1 Host: example.com Content-Length: 13 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11 Content-Type: application/json Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 {"foo":"bar"}