Javascript 跨来源请求是什么意思?
我有一个js应用程序,可以检测单点、右键、左键等。单点是异步的。请求http服务器和rest更改客户端的用户界面。 但我无法成功地将请求发送到服务器,并在客户端看到错误。 没有发送任何内容,我从web服务器的日志中读取 以下是控制台上的错误消息:Javascript 跨来源请求是什么意思?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个js应用程序,可以检测单点、右键、左键等。单点是异步的。请求http服务器和rest更改客户端的用户界面。 但我无法成功地将请求发送到服务器,并在客户端看到错误。 没有发送任何内容,我从web服务器的日志中读取 以下是控制台上的错误消息: [Error] XMLHttpRequest cannot load localhost:5050/h?timestampDate=2010-undefined-null×tampHour=null. Cross origin
[Error] XMLHttpRequest cannot load localhost:5050/h?timestampDate=2010-undefined-null×tampHour=null.
Cross origin requests are only supported for HTTP.
send ([native code], line 0)
h (tm, line 420)
(anonymous function) (tm, line 72)
[Error] NETWORK_ERR: XMLHttpRequest Exception 101: A network error occurred in synchronous requests.
h (tm, line 420)
(anonymous function) (tm, line 72)
这里的问题是什么。跨来源请求是什么意思。我的ajax请求与上一个请求有什么不同?我可以成功地完成
注:在fiddle中,第一个错误参考(tm,第420行)位于js的第344行,第二个错误参考位于js的第11行
js fiddle:错误源于URL字符串:
xmlhttp.open("GET", "localhost:5050/h" + "?" + ..., true);
当包含主机时,您需要至少在其前面加上/
,以便浏览器知道该字符串是绝对URL:
xmlhttp.open("GET", "//localhost:5050/h" + "?" + ..., true);
// ^^
否则,假定URL相对于当前页面的地址,因此浏览器试图将localhost:5050
视为文件夹名称
“跨源”指的是未通过测试的URL。这是对客户端JavaScript可以访问的地址的安全限制
“源”是协议、主机名和来自当前地址的端口的组合。在我的情况下,我应该做的是解决问题,只使用服务器上函数的名称作为“/h”。。。我还没有打算提出跨产地申请。谢谢这再次回答了它和其他问题。
xmlhttp.open("GET", "http://localhost:5050/h" + "?" + ..., true);