当前位置: 首页 > 面试题库 >

AJAX调用并清除JSON,但语法错误:缺少; 声明前

陈瀚玥
2023-03-14
问题内容

我正在使用以下代码进行跨域JSONP调用:

jQuery.ajax({
        async: true,
        url: 'http://mnews.hostoi.com/test.json',
        dataType: 'jsonp',
        method: "GET",
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(textStatus + ': ' + errorThrown);
        },
        success: function (data, textStatus, jqXHR) {
            if (data.Error || data.Response) {
                exists = 0;
            }
        }
    });

在Firebug中进行调试时,出现以下错误:

在此处输入图片说明

SyntaxError: missing ; before statement

但是,当我通过jsonlint.com之类的工具传递我的json对象(可通过JQ代码中的链接获得)时,它说这是有效的JSON。而且我也没有发现任何异常。它怎么可能返回语法错误?是我没有得到的一些JSONP详细信息还是什么?

JSON样本

{"news":[ {
  "sentences": [
    "Neuroscientists have discovered abnormal neural activity...", 
    "The researchers found that these mice showed many symptoms...", 
    "\"Therefore,\" the study authors say, \"our findings provide a novel.."
  ], 
  "summaryId": "ZJEmY5", 
  "title": "Abnormal neural activity linked to schizophrenia"
}]}

提前致谢。


问题答案:

JSONP不是JSON。JSONP响应将由一个JavaScript脚本组成,该JavaScript脚本仅包含一个函数调用(对预定义函数)和一个参数(这是符合JSON语法的JavaScript对象文字)。

您得到的响应是JSON,而不是JSONP,因此您将其作为JSONP处理的工作失败。

更改dataType: 'jsonp'dataType: 'json'(或完全删除该行,服务器将发出正确的内容类型,因此您无需覆盖它)。

由于您的脚本在JSON之外的其他来源上运行,因此您还需要采取步骤(大多数(但不是全部)都需要您控制服务于JSON的主机)来解决同一来源策略。



 类似资料:
  • 我一直试图搜集一些推特的数据,但每次运行此代码时,都会出现错误:调用“print”时缺少括号。 有人能帮我解决这个问题吗? 感谢您的时间:)

  • 下面是XSD。 下面是xml文件。 当尝试使用http://www.utilities-online.info/xsdvalidation验证它时,我得到以下错误 第2行62:org.xml.sax.SAXParseException;行号:2;列号:62;CVC-ELT.1:找不到元素“Message”的声明。

  • 我使用mariadb和heidisql来执行sql: DECLARE@Account tID INT; 将值('testfirstname','a','testlastname','user@email.com“,1,1,NOW()); set@Account tID=Last_Insert_Id(); 我一直收到一个错误: QL Error(1064):您的SQL语法有错误;查看与您的Maria

  • 我是一个游戏玩家,他决定制作一些其他人可以玩的基本游戏。我对编码很陌生,对它有最基本的了解。我和我的表弟正在尝试用Python 3.6.0制作一个基于文本的游戏。我们在互联网上搜索了我们问题的答案,但什么也找不到。代码如下: 当试图运行模块进行测试时,我们会收到一个错误,上面写着: msgstr"调用打印时缺少括号" 由于我们对编码有如此基本的了解,并且在google上找不到答案,我们希望有人能帮

  • 当我运行npm运行json: server时,我得到了这个错误。 npm错误!缺少脚本:json: 当我打开日志文件时,它是这样说的: 0信息,如果它以ok结束1详细cli['C:\Program Files\nodejs\node.exe',1详细cli'C:\用户\IanP\AppData\漫游\npm\node_modules\npm\bin\npm-cli.js',1详细cli'run',

  • 我想在HW的整数中找到奇数。所以CountOddigtis(56781)应该返回(非打印)5 7 1。我的方法是将整数转换为字符串,并使用它返回。我遇到的问题是 > 缺少返回语句错误,即使我在if语句中有一个返回语句。有人能解释这个错误意味着什么以及如何克服它吗? 当我把返回x;放在方法的末尾时,它会打印56781的错误答案49。 Java解决stringn.charat(x)%2!=0考虑到我可