Javascript 跨来源请求是什么意思?

Javascript 跨来源请求是什么意思?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个js应用程序,可以检测单点、右键、左键等。单点是异步的。请求http服务器和rest更改客户端的用户界面。 但我无法成功地将请求发送到服务器,并在客户端看到错误。 没有发送任何内容,我从web服务器的日志中读取 以下是控制台上的错误消息: [Error] XMLHttpRequest cannot load localhost:5050/h?timestampDate=2010-undefined-null&timestampHour=null. Cross origin

我有一个js应用程序,可以检测单点、右键、左键等。单点是异步的。请求http服务器和rest更改客户端的用户界面。 但我无法成功地将请求发送到服务器,并在客户端看到错误。 没有发送任何内容,我从web服务器的日志中读取

以下是控制台上的错误消息:

[Error] XMLHttpRequest cannot load localhost:5050/h?timestampDate=2010-undefined-null&timestampHour=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);