Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery更改href链接会导致CORS策略阻塞_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery更改href链接会导致CORS策略阻塞

Javascript 使用jQuery更改href链接会导致CORS策略阻塞,javascript,jquery,Javascript,Jquery,我正在处理一个网页,当用户向下滚动时,该网页会动态添加内容。作为这个过程的一部分,我将有已经添加到DOM中的“a”元素,然后我想动态地给它们一个href链接。问题是我从Google Chrome上得到了这个错误 CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 跨源读取阻止(CORB)使用MIME类型text/html阻止跨源响应。有关更多详细信息,请参阅 下面是导致此问题的代码示例 article.find('a').each(fun

我正在处理一个网页,当用户向下滚动时,该网页会动态添加内容。作为这个过程的一部分,我将有已经添加到DOM中的“a”元素,然后我想动态地给它们一个href链接。问题是我从Google Chrome上得到了这个错误

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头

跨源读取阻止(CORB)使用MIME类型text/html阻止跨源响应。有关更多详细信息,请参阅

下面是导致此问题的代码示例

article.find('a').each(function() {
     $(this).attr("href", "https://www.youtube.com/watch?v=K4NRJoCNHIs");
     $(this).attr("target","_blank");
当我运行调试器时,我看到href属性已成功更改,但Chrome不久后抛出错误并完全删除该元素

我不明白添加链接如何动态地破坏CORS策略。如果有人有任何建议来防止出现错误,或者有更好的方法来动态编辑href属性,请告诉我

谢谢大家!

编辑:


我解决了这个问题!在被告知javascript必须在我不知道的情况下生成XMLHttpRequest并思考我正在使用的库之后,我意识到当用户滚动到底部时,我用来向页面添加内容的库jScroll确实向页面上最后一个“a”标记的href发出GET请求。这是有意义的,因为要正常使用jScroll,最后一个“a”标记应该有一个指向下一个要加载的html页面的href。谢谢大家的帮助

我会回答我自己的问题,因为多亏了这里的帮助,我才解决了这个问题!更改href不应在链接上发出GET请求。因此,我寻找可能有其他代码尝试访问href的地方。我发现jScroll试图使用“a”标记来生成新的页面内容,结果jScroll在链接被更改时发出GET请求

考虑到使用Angular等构建的页面中的每个链接都是通过javascript动态生成和添加的,我不认为动态添加链接到页面会造成cors问题。可能是Chrome或您使用的某些扩展阻止了这种行为,因为当您尝试用指向同一youtube视频的链接替换页面中的每个链接时,它可能看起来像是浏览器劫持。只是一个想法,可能值得谷歌去做。一个链接没有使用
XMLHttpRequest
,javascript doeshmm,我只是在Firefox中测试了这个网站,在那里我没有任何扩展,我仍然会遇到“跨源请求被阻止”的错误。那么,当我刚刚编辑一个元素的href时,为什么javascript会生成一个
XMLHttpRequest
。非常感谢。我留下了一个解释发生了什么的编辑。如果你解决了它,就把它作为一个答案,而不是对你的问题的改变。解决方案不是原始问题的一部分!这是一个问答网站,所以请遵循格式。你可以回答自己的问题,其他人也可以对这个答案投票……所以这符合你的利益:-)。谢谢