这段代码出了什么问题?
$.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");
}
});
我创建了一个创建JSON的CLASSIC ASP(在线测试人员上验证过)。 如果我在AJAX上尝试任何其他URL,它的作品......但是这个CLASSIC ASP不会。
使用JSON_2.0.2.asp创建经典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而没有。相同的结果。
感谢所有的收获
答案 0 :(得分:1)
您的网页域名是什么? 是否与&#34; http://www.onecert.com.br&#34;相同 如果否,那么这就是交叉原产地政策的问题 并在浏览器控制台中显示
阻止跨源请求:同源策略禁止在http://www.onecert.com.br/json.asp读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。
如果是这种情况,请参阅以下链接
Can't get jQuery to get JSON from another domain (using JSONP)
答案 1 :(得分:0)
Tks @ 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!")
} });
Server Classic Asp:
dim callback
callback = Request("callback")
Response.Write(callback & "([{""name"": ""Daniel"", ""surname"": ""Smith"", ""message"": ""Hi""}])")
现在,客户端脚本在ASP域之外工作,包括jsFiddle:
很多!喜欢你们的人,他们分享知识,制造我们的&#34; ITworld&#34;更好:D:D:D:D