跨域请求
Cross domain requests
本文关键字:请求 更新时间:2023-09-26
我有一个从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>
从mydomain.com
加载脚本
Test = {
testAjax: function() {
//make ajax request to http://mydomain.com/myendpoint
}
}
我做错了什么?正确的方法是什么?
我认为无论脚本文件是从哪个域加载的,都能够向该源发出请求?
。起始总是页面而不是脚本。
我做错了什么?
您的脚本违反了跨域限制,从一个域提供服务,但请求另一个域的脚本。
正确的方法是什么?
有两种可能:
-
将正在运行的脚本和被调用的脚本放在同一个域中
-
使用
dataType = "jsonp"
绕过限制。jQuery将执行一些魔术(将调用替换为<script src="mydomain.com/endpoint" />
格式的内联脚本引用)以使此工作。
脚本的原点将永远是mydomain.com
!您可以使用Ajax代理(通过您的后端)或最终JSONP是您的方式(更可能是两者都有,取决于您的需要)。
当你加载javascript时,它就好像代码是在someotherdomain.com
上,你将有跨域问题从该域到mydomain.com
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 在openshift node js应用程序中获取请求
- 反应路由器弄乱了请求网址
- 在我的情况下,如何进行http请求
- 使用密码对话框Javascript请求帮助
- servlet中的请求对象,而不是从jsp接收参数值
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- JavaScript代码未正确检查ajax请求
- node.js请求数据事件未在CORS ajax调用中触发
- 如何检测第三方广告服务器请求
- 在Rails中更新Div,而不更改更新请求后的视图
- jQuery Ajax GET请求工作不正常