我有以下功能:
$.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
问题是我总是出错(“发生以下错误:错误”) 您认为它可能有什么问题?
最佳答案
正如 Tomasz 所指出的,这是因为同源政策。
为了证明/测试这一点:
假设您的 html 页面是“index.html”,请执行以下操作。
- 从与 index.html 相同的目录运行命令“python -m SimpleHTTPServer 8080”
- 访问浏览器并输入“http://127.0.0.1:8080/index.html”。 Python 应该为 html 提供服务,而浏览器应该可以很好地呈现它。
- 现在终止 python 命令,改为运行“nc -l 8080”。 NC 已准备好在与原始网页相同的域/端口上处理 ajax 请求。
- 现在只需从网页调用 ajax 调用,然后用 nc 回复。
ajax 现在应该可以工作了。
关于javascript - 如何在服务器端回答ajax请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12997447/