将Jsonp响应转换为文本数据?

时间:2012-08-02 12:33:48

标签: javascript jquery json cross-domain jsonp

首先,我知道jsonp是如何工作的。 它从支持这类请求的服务器中将js代码注入callback ({a:1})

我有这个code连接到facebook,他们返回一个无效的json结果。

他们支持jsonp因为使用jquery ajax数据类型:jsonp - DOES返回值(虽然无效)

jsonp调用的响应是:

for(;;);  //<----------- the problem
{
    "__ar": 1,
    "error": 1357001,
    "errorSummary": "Not Logged In",
    "errorDescription": "Please log in to continue.",
    "payload": {
        "__dialog": {
            "title": {
                "__html": "Not Logged In"
            },
            "body": {
                "__html": "Please log in to continue."
            },
            "buttons": [
            {
                "name": "login",
                "label": "Log In",
                "handler": "goURI(\"\/login.php\", true);"
            }],
            "modal": true,
            "onloadRegister": ["setInterval(function () {\n        if (getCookie(\"c_user\") || getCookie(\"csm\")) {\n          window.location.reload();\n        }}, 5000);"]
        }
    },
    "js": ["8fTQS"],
    "resource_map": {
        "8fTQS": {
            "type": "js",
            "src": "https:\/\/s-static.ak.fbcdn.net\/rsrc.php\/v2\/y9\/r\/NXhpMFxH7x0.js"
        }
    }
}

当然 - 这是一个无效的json。

Firebug: enter image description here

当我将此文本粘贴到jsonlint时,删除第一行 - 它是一个有效的json。

如果我可以从结果中删除for(;;);行 - 我可以解析结果。

我想捕获文本响应并用空字符串替换for(;;);

我想要jquery文档,我注意到了这个信息:

enter image description here

我确实尝试写jsonp text但仍然错误。

如何在不显示错误的情况下获取结果并将for(;;);替换为空字符串?

0 个答案:

没有答案