1

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

我有这个连接到 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。

萤火虫: 在此处输入图像描述

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

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

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

我想查询文档,我注意到了这个信息:

在此处输入图像描述

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

如何获得结果并for(;;);用空字符串替换而不显示错误?

4

0 回答 0