我有以下功能:
$.ajax({url:"http://127.0.0.1:8080", data: "123",
success:
function(response, textStatus, jqXHR)
{
alert(response);
},
error:
function(jqXHR, textStatus, errorThrown)
{
alert("The following error occured: " + textStatus + " " + errorThrown);
}
});
它发送请求,我用“nc -l 8080”拦截一个。 它看起来像
GET /?123 HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: null
然后我回答
HTTP/1.1 200 OK
Content-Length: 3
abc
问题是我总是得到错误(“发生以下错误:错误”) 你认为它有什么问题?
答案 0 :(得分:0)
正如Tomasz所指出的那样,因为同源政策。
证明/测试这个:
假设您的html页面是“index.html”,请执行以下操作。
ajax现在应该可以工作了。
答案 1 :(得分:0)
readyState = 0表示请求尚未发送,常量“UNSENT”的名称: http://www.w3.org/TR/XMLHttpRequest/
关于发出请求之前的错误的实际原因,是的,同源政策是最可能的罪魁祸首。
你必须使用相对链接,url:“/”我猜,要捕获请求。