我正在尝试发送跨域名ajax GET请求
$(document).ready(function(){
$.ajax
({
type: "GET",
url: "url",
cache: false,
contentType: "application/x-www-form-urlencoded",
dataType: "jsonp",
beforeSend: function (xhr){
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader('Authorization', make_base_auth("login", "pwd"));
},
success: function (data, success){
console.log("success", arguments);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("error", arguments);
},
complete: function(jqxhr, textStatus) {
console.log("complete", arguments);
}
});
});
服务器只接受application / x-www-form-urlencoded数据。 发送请求后,我收到状态为415的响应(不支持的媒体类型) 当我在firebug中检查标头时,我根本看不到Content-Type标头。
GET /url?callback=jsonp1374315852923&_=1374315854258 HTTP/1.1
Host: hostname
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://refferer
Cookie: JSESSIONID=1DCD5D9EB35FEF083C7EAF8F7EA25D54; ltime=1374315850; lid=30000379384174; SESS826f62d511330ecdaa9034d04e399c65=qj2jcempp4osi2hc00lq1jnkp1; AA_SESS=2c-30f9987cd946; AA_UID=0fe8965d05c37706a5bfbec88629ed68
Authorization: Basic YWthdml0YTpQNlBhdQ==
Connection: keep-alive
非常感谢你的评论!
答案 0 :(得分:0)
您正在使用JSONP作为数据类型。 JSONP使jQuery简单地将一个脚本标记插入到您的文档中,然后将其作为普通的浏览器请求拉入。因此,您无法在其上设置标题。
如果您没有特定需要使用JSONP(您使用的是同一个域),请改用JSON。如果您跨域提出请求,请考虑使用CORS(在旧版浏览器中可能无法使用)。