Javascript 跨域请求
我从Javascript 跨域请求,javascript,html,ajax,xss,Javascript,Html,Ajax,Xss,我从mydomain.com加载了一个脚本文件,它向该域发出ajax请求。不过,该脚本被加载到其他一些域中,这些域会初始化它,然后告诉它何时发出请求。但我遇到了一些问题,因为浏览器认为这是一个跨域请求。我认为无论从哪个域加载脚本文件,都能够向该源发出请求?以下是一些代码作为示例: 页面位于someotherdomain.com: <html> <head> <script type="text/javascript" src="http://
mydomain.com
加载了一个脚本文件,它向该域发出ajax请求。不过,该脚本被加载到其他一些域中,这些域会初始化它,然后告诉它何时发出请求。但我遇到了一些问题,因为浏览器认为这是一个跨域请求。我认为无论从哪个域加载脚本文件,都能够向该源发出请求?以下是一些代码作为示例:
页面位于someotherdomain.com
:
<html>
<head>
<script type="text/javascript" src="http://mydomain.com/test.js"></script>
<title>Cross-Domain Ajax Test</title>
</head>
<body>
<h1>Test</h1>
<p id="ajax-response"></p>
<script type="text/javascript">
Test.testAjax();
</script>
</body>
</html>
我做错了什么?正确的方法是什么 加载javascript时,代码就好像在
someotherdomain.com
上一样,从该域到mydomain.com
会出现跨域问题
我认为无论从哪个域加载脚本文件,都能够向该源发出请求
否。源代码始终是页面而不是脚本。脚本的源代码始终是
mydomain.com
!您可以(通过后端)使用Ajax代理,也可以最终使用(更可能两者都使用,这取决于您的需要)
我做错了什么
您的脚本违反了跨域限制,从一个域提供服务,但在另一个域上请求脚本
正确的方法是什么
有两种可能:
dataType=“jsonp”
绕过限制。jQuery将执行一些神奇的操作(用
格式的内联脚本引用替换调用),以实现这一点那么google analytics或其他javascript api库是如何进行调用的呢?要么发出只写请求,要么使用JSONP。
Test = {
testAjax: function() {
//make ajax request to http://mydomain.com/myendpoint
}
}