gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:22:20 25 4
gpt4 key购买 nike

我有一个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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com