【问题标题】:Classic ASP + Ajax经典 ASP + Ajax
【发布时间】:2015-05-06 12:07:10
【问题描述】:

这段代码有什么问题?

$.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 没有。

经典 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/

【问题讨论】:

    标签: jquery ajax asp-classic


    【解决方案1】:

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

    【讨论】:

    • @daniel 这就是问题所在,但无论它是否在同一个盒子上,Chrome 仍然会抱怨缺少 Access-Control-Allow-Origin HTTP 标头。如果您的客户端脚本从同一站点运行,只需使用 url: 'json.asp' 作为测试,包括完整的 URL 将需要在响应中设置 Access-Control-Allow-Origin
    • 点网学习者和@Lankymart:tks 很多!问题解决了谢谢各位!!!万事如意!
    • @DANIEL 标记为答案,如果它解决了您的问题,因此将来如果有人遇到同样的问题,那么他们可以参考该答案或给出解决您问题的答案
    • 嗨@Dotnetlearner,是的,我知道..这是我的第一个问题,我不知道接受按钮在哪里..kkk :D
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多