如何在jQuery.ajax请求中获取JSON响应到appengine URL?

时间:2012-02-27 11:08:03

标签: javascript json google-app-engine jquery

我在Google App Engine托管的网址服务返回JSON内容类型。

示例网址为this,在浏览器中运行良好。也通过http://jsonlint.com验证。

我正在使用以下jQuery.ajax调用来获取响应。

jQuery.ajax({
type: "get",
url: "http://trim-pk.appspot.com/do?url=http://www.google.com",
dataType: "json",
success: function(response) {
    alert(response);
} 
});

出了什么问题?为什么我没有收到回复。它是空的。

我尝试了contentType: "application/json; charset=utf-8"contentType: "application/json; charset=ISO-8859-1",但得到了500。

以下是我的Firebug输出。

enter image description here

3 个答案:

答案 0 :(得分:1)

您是否在AppEngine应用上配置了CORS

答案 1 :(得分:0)

:/是Url中的保留字符,具有特殊含义。

要在Url参数中使用它们,您必须"Url encode"它们。浏览器会自动执行此操作。

在Javascript中,您必须通过encodeURIComponent()函数手动执行此操作。这应该可以解决问题:

jQuery.ajax({
    type: "get",
    url: "http://trim-pk.appspot.com/do?url=" + encodeURIComponent("http://www.google.com"),
    dataType: "json",
    success: function(response) {
        alert(response);
    } 
});

更新:encodeURI替换为encodeURIComponent

答案 2 :(得分:0)

jQuery.ajax({
    type: "get",
    url: "http://trim-pk.appspot.com/do",
    data: {
        url: "http://www.google.com"
    },
    dataType: "json",
    success: function(response) {
        alert(response);
    } 
});