当前位置: 首页 > 知识库问答 >
问题:

未捕获的语法错误意外令牌:,但服务器从服务器收到了一个有效的json对象

国胤
2023-03-14

我正在尝试使用$向solr搜索引擎发出GET请求。jQuery中的ajax()。这是我用于执行ajax调用的代码

$.ajax({
            url : 'http://xxx.xxx.xxx.xxx:port#/solr/mycore/select?indent=on&q=myparam:value&wt=json',
            type: "GET",
            dataType: "jsonp",
            jsonp : "callback",
            success: function(data) {
                console.log("Success", data);
            },
            error: function(data) { alert("Error"); }
        });

所以我在响应中得到了一个有效的json对象,但是不知何故浏览器抛出了一个未捕获语法错误。实际错误是:

未捕获的语法错误:意外标记:

选择缩进=打开

棘手的是,当我在浏览器中检查时,响应标题是text/plain。我怎样才能解决这个问题?请帮帮我。。。

共有2个答案

帅银龙
2023-03-14
匿名用户

我解决了这个问题。实际上,我必须在ajax调用和json调用中使用jsonpCallback:“mysuccesscallbackfunction”。URL中的wrf=mysuccesscallbackfunction。现在看起来是这样的:

$.ajax({
url : 'http://xxx.xxx.xxx.xxx:port#/solr/mycore/select?indent=on&q=myparam:value&wt=json&json.wrf=mysuccesscallbackfunction',
        type: "GET",
        dataType: "jsonp",
        jsonp : "callback",
        jsonpCallback:"mysuccesscallbackfunction",
        success: function(data) {
            console.log("Success", data);
        },
        error: function(data) { alert("Error"); }
    });

我的mysuccesscallbackfunction是:

function mysuccesscallbackfunction(resp) {
        console.log('inside mysuccesscallbackfunction: ', resp );
    }

现在,它首先执行mysuccesscallbackfunction中的任何内容,然后进入默认的success回调。我在网上的某个地方找到了它。我仍然想知道为什么它现在起作用了。

吴同
2023-03-14

冒号需要在查询字符串中进行编码。

您的url应如下所示:

http://xxx.xxx.xxx.xxx:port#/solr/mycore/select?indent=on

如果您正在动态生成查询字符串,请使用编码器URIComponent()正确编码特殊字符。

 类似资料:
  • 我正在尝试使用React创建一个简单的网站,但由于某些原因,它只显示一个空白页面。 显示在控制台日志上的错误是未捕获的语法错误:意外令牌 非常感谢。 HTML: 主JS: Navbar: 身体

  • 问题内容: Chrome尝试在页面上加载脚本文件时收到主题错误。它说它在javascript文件的最后一行。我似乎找不到任何问题。firefox中没有错误,脚本可以按预期工作。仅使用表单验证 问题答案: 该资源末尾有某种伪造的字符。尝试删除最后一行并将其添加回去。 我无法弄清楚那里到底是什么… _编辑_我认为这是一个零宽度的空间,Unicode200B。似乎很奇怪,我当然不能肯定这不是Stacko

  • 问题内容: 我在MooTools脚本中运行AJAX调用,在Firefox中运行正常,但是在Chrome中出现错误,我无法确定原因。注释掉代码以确定错误代码在什么地方不会产生任何结果,我认为这可能与返回JSON有关。在控制台中检查,我看到返回的JSON是这样的: 我没有看到任何问题,为什么会发生此错误? 问题答案: 我刚刚解决了这个问题。导致标准Request调用出现问题的原因是,这是我改用的代码:

  • 我试图发出一个Ajax调用来访问一个web服务并获得响应。但是获取未捕获的语法错误:意外的标记 Request标头如下: 请求URL:http://10.10.1.5:8089/axis2/services/cmtlpmservice/getAllMonitors?callback=回调 接受:/ 接受-编码:gzip,通货紧缩,sdch 接受-语言:en-US,en; q=0.8 授权:基本YW

  • 当我在chrome中运行我的页面时,我得到了这个错误“uncaughtsyntaxerrorunexpectedtokenu”。在firefox中,我得到了“JSON.parse:意外字符”。我从一个php文件返回json数据,返回的json字符串是有效的。我和你核对过了http://jsonlint.com/.任何帮助都将不胜感激。。。谢谢 下面是返回的JSON字符串

  • 我是Ruby on Rails的新手。我通过教程创建了两个基本的演示应用程序 PG::错误 服务器意外关闭了连接这可能意味着服务器在处理请求之前或处理请求时异常终止。 而且有时(通常是在我重新启动postgresql时), PG::错误 服务器意外关闭了连接这可能意味着服务器在处理请求之前或处理请求时异常终止。无法发送启动数据包:管道中断 这是我的堆栈跟踪 我在Ubuntu12.04(因为goog