经典 ASP + Ajax
Classic ASP + Ajax
这段代码有什么问题?
$.ajax({
//url: 'http://ip.jsontest.com/',
// url: 'http://ipinfo.io/json',
//url: 'http://ip-api.com/json',
url: 'http://www.onecert.com.br/json.asp',
success: function(data) {
alert("OK");
},
error: function(dataerror) {
alert("NO");
}
});
我创建了一个 CLASSIC ASP,它创建了一个 JSON(在线测试人员验证)。
如果我在 AJAX 上尝试任何其他 URL 它的作品..但是对于这个 CLASSIC ASP 没有。
经典 ASP 是用 JSON_2.0.2.asp.
创建的
<!--#Include File="JSON_2.0.2.asp"-->
<%
Response.ContentType = "application/json"
Dim member
Set member = jsObject()
member("name") = "Daniel"
member("surname") = "Smith"
member("message") = "Hello"
member.Flush
%>
为什么? (我是初学者)
我试过使用 Response.ContentType 和不使用。相同的结果。
感谢大家的回复
您的页面域是什么。
是否与“http://www.onecert.com.br”相同
如果不是那么这就是跨源策略的问题
在浏览器控制台中它会显示
跨源请求被阻止:同源策略不允许读取位于 http://www.onecert.com.br/json.asp 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。
如果是这种情况,请参考以下链接
Can't get jQuery to get JSON from another domain (using JSONP)
jQuery getJSON works locally, but not cross domain
感谢@Dot-net-learner 和@Lankymart!!!!!!
感谢你们,我终于能够解决 - 特别是 - 理解这个问题。
是的,我只在我的计算机上测试客户端脚本(使用 Web 域中的 ASP 代码),然后也通过 jsFiddle 进行测试。当然,在这两种情况下都存在 CORS 问题。
将客户端脚本放在同一个域中 - 使用 ASP 代码,效果很好!
但我遇到了 CORS 问题 - 为了解决这个问题,我重写了脚本 - 并将经典 ASP 代码改写为:
客户端脚本:
$.ajax({
url:'http://www.onecert.com.br/json.asp',
dataType: 'jsonp',
jsonp: 'callback',
error: function(jqXHR, textStatus, errorThrown){
alert("NO")
},
success: function(data){
alert("YEAAAAAAH!")
} });
服务器经典 Asp:
dim callback
callback = Request("callback")
Response.Write(callback & "([{""name"": ""Daniel"", ""surname"": ""Smith"", ""message"": ""Hi""}])")
现在,客户端脚本在 ASP 域之外运行,包括在 jsFiddle 上:
非常感谢!像你们这样分享知识的人,让我们的 "ITworld" 变得更好 :D :D :D :D
这段代码有什么问题?
$.ajax({
//url: 'http://ip.jsontest.com/',
// url: 'http://ipinfo.io/json',
//url: 'http://ip-api.com/json',
url: 'http://www.onecert.com.br/json.asp',
success: function(data) {
alert("OK");
},
error: function(dataerror) {
alert("NO");
}
});
我创建了一个 CLASSIC ASP,它创建了一个 JSON(在线测试人员验证)。 如果我在 AJAX 上尝试任何其他 URL 它的作品..但是对于这个 CLASSIC ASP 没有。
经典 ASP 是用 JSON_2.0.2.asp.
创建的<!--#Include File="JSON_2.0.2.asp"-->
<%
Response.ContentType = "application/json"
Dim member
Set member = jsObject()
member("name") = "Daniel"
member("surname") = "Smith"
member("message") = "Hello"
member.Flush
%>
为什么? (我是初学者)
我试过使用 Response.ContentType 和不使用。相同的结果。
感谢大家的回复
您的页面域是什么。 是否与“http://www.onecert.com.br”相同 如果不是那么这就是跨源策略的问题 在浏览器控制台中它会显示
跨源请求被阻止:同源策略不允许读取位于 http://www.onecert.com.br/json.asp 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。
如果是这种情况,请参考以下链接
Can't get jQuery to get JSON from another domain (using JSONP)
jQuery getJSON works locally, but not cross domain
感谢@Dot-net-learner 和@Lankymart!!!!!!
感谢你们,我终于能够解决 - 特别是 - 理解这个问题。
是的,我只在我的计算机上测试客户端脚本(使用 Web 域中的 ASP 代码),然后也通过 jsFiddle 进行测试。当然,在这两种情况下都存在 CORS 问题。
将客户端脚本放在同一个域中 - 使用 ASP 代码,效果很好!
但我遇到了 CORS 问题 - 为了解决这个问题,我重写了脚本 - 并将经典 ASP 代码改写为:
客户端脚本:
$.ajax({
url:'http://www.onecert.com.br/json.asp',
dataType: 'jsonp',
jsonp: 'callback',
error: function(jqXHR, textStatus, errorThrown){
alert("NO")
},
success: function(data){
alert("YEAAAAAAH!")
} });
服务器经典 Asp:
dim callback
callback = Request("callback")
Response.Write(callback & "([{""name"": ""Daniel"", ""surname"": ""Smith"", ""message"": ""Hi""}])")
现在,客户端脚本在 ASP 域之外运行,包括在 jsFiddle 上:
非常感谢!像你们这样分享知识的人,让我们的 "ITworld" 变得更好 :D :D :D :D