经典的ASP + Ajax

时间:2015-03-05 07:41:42

标签: jquery ajax asp-classic

这段代码出了什么问题?

$.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而没有。相同的结果。

感谢所有的收获

http://jsfiddle.net/gwfcr5z8/

2 个答案:

答案 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)

jQuery getJSON works locally, but not cross domain

http://en.wikipedia.org/wiki/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:

jsFiddle

很多!喜欢你们的人,他们分享知识,制造我们的&#34; ITworld&#34;更好:D:D:D:D