经典 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://jsfiddle.net/gwfcr5z8/

您的页面域是什么。 是否与“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

http://en.wikipedia.org/wiki/JSONP

感谢@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 上:

jsFiddle

非常感谢!像你们这样分享知识的人,让我们的 "ITworld" 变得更好 :D :D :D :D