javascript - 跨源请求是什么意思?

标签 javascript jquery ajax

我有一个js应用程序,可以检测单次、右键双击、左键双击等。单击用于异步。请求http服务器和其余部分是为了改变客户端的用户界面。 但我无法成功将请求发送到服务器并在客户端看到错误。 没有发送任何内容,我从网络服务器的日志中读取它。

这些是控制台上的错误消息:

[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 :http://jsfiddle.net/farukscan/6kUBy/

最佳答案

错误源于 URL 字符串:

xmlhttp.open("GET", "localhost:5050/h" + "?" + ..., true);

当包含主机时,您需要至少在其前面添加 // 前缀,以便浏览器知道该字符串是绝对 URL:

xmlhttp.open("GET", "//localhost:5050/h" + "?" + ..., true);
//                   ^^
xmlhttp.open("GET", "http://localhost:5050/h" + "?" + ..., true);

否则,URL 会被假定为相对于当前页面的地址,因此浏览器会尝试将 localhost:5050 视为文件夹名称。

<小时/>

并且,“跨源”是指未通过 Same Origin Policy 的 URL 。这是对客户端 JavaScript 可以访问的地址的安全限制。

“来源”是当前地址的协议(protocol)、主机名和端口的组合。

关于javascript - 跨源请求是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817030/

相关文章:

javascript - 在函数中使用动态选择的数组(javascript)

javascript - MVC 客户端验证的某处缺少链接

javascript - jQuery 插件在 Chrome 中刷新时将图像高度降低至 1px

javascript - 如何将 html 文件加载到 jquery 选项卡中

javascript - 在 Javascript 中保护 JSON?

javascript - Bootstrap : ScrollSpy and smooth scroll

javascript - 更改背景颜色/将边框设为当天

javascript - 如何垂直显示一组动态生成的按钮

javascript - 动态添加菜单项不会在侧边栏导航中切换到 Sb Admin 2

javascript - 客户端页面调用/抓取?