asp.net - 从书签 AJAX 调用 asp

标签 asp.net javascript ajax asp.net-ajax

我正在尝试创建一个书签,它将启动对我编写的 aspx 页面的 AJAX 调用。

当我将 javascript 放在静态 html 页面中时,代码测试完美,但是当我尝试从书签中调用它时,代码将卡在 xmlHttp.open("GET", url, true)部分。

小书签的代码基本是这样的(在网上找了几个例子):

javascript:(function(){
  var s,
  d=document,
  a=function(o){ d.body.appendChild(o) };
  s=d.createElement('script');
  s.type='text/javascript';
  s.src='http://localhost/squirt/sq.js';
  a(s)
})();

这会将 sq.js 的内容(ajax 调用 + 一些其他处理)添加到浏览器当前所在的任何页面,然后将 ajax 调用到我的 aspx 页面。

我正在使用 ASP 2.0(与 VS2008)和 IIS 7。到目前为止,我只是在我的家庭网络上测试它。

我假设来自外部页面的 ajax 调用一定存在某种权限问题,因为正如我所说,静态页面的一切正常。这是我需要更改的 IIS 设置以允许调用,还是我做错了什么?

最佳答案

XMLHttpRequest 对象遵循同源策略。
这就是为什么您的小书签正在加载的脚本不能使用 XHR 从您的服务器获取数据,除非它嵌入到您服务器的页面中。
通过动态添加脚本标签添加的脚本将起作用,正如您所知 - 您的小书签可以从不同来源加载脚本。
这就是你的答案。不要使用 XMLHttpRequest 对象:以与小书签相同的方式动态加载脚本。
这就是 JSONP 的工作方式(实际上 JSONP 的功能更多一些,但这就是它绕过 SOP 的方式)

实际上,为什么不直接使用 JSONP

关于asp.net - 从书签 AJAX 调用 asp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487978/

相关文章:

javascript - 如何将下拉项中的值传递给 URL?

javascript - 有没有办法关闭 babelify 中的 "this is not allowed before super"规则?

javascript - 如何对 Bootstrap-DateTimePicker 日历小部件进行样式更正?

javascript - 通过 ajax 和 jQuery 根据获取结果选择值

jquery - 带 Chrome 的滞后滚动

c# - 在 ASP.Net 中将数据更新到 SQL Server 的最佳实践是什么

javascript - Javascript 中的子字符串与 substr()

asp.net - 名称值列表字段未在自定义项目生成器基类中生成

javascript - 异步函数与等待

c# - 如何在多个环境中使用 URL 路由?