Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON Stringify&;AJAX解析错误_Javascript_Php_Jquery_Ajax_Json - Fatal编程技术网

Javascript JSON Stringify&;AJAX解析错误

Javascript JSON Stringify&;AJAX解析错误,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我已经为此努力了几个小时,尝试了所有我能在网上找到的建议,但是仍然失败了。当我使用JSON.stringify对函数参数进行编码,然后通过AJAX将其传递给我的PHP处理程序时,我会收到一个提示弹出窗口,提示parsererror 这显然是Javascript中的一个问题,但我现在无法确定在哪里 也许有人能看出我做错了什么吗 // JSON Encode to pass via AJAX to PHP var params = { "id": pl

我已经为此努力了几个小时,尝试了所有我能在网上找到的建议,但是仍然失败了。当我使用JSON.stringify对函数参数进行编码,然后通过AJAX将其传递给我的PHP处理程序时,我会收到一个提示弹出窗口,提示parsererror

这显然是Javascript中的一个问题,但我现在无法确定在哪里

也许有人能看出我做错了什么吗

            // JSON Encode to pass via AJAX to PHP
            var params = { "id": player };
            var params2 = JSON.stringify(params);

            // {"id":"939952da-23df-4ff1-b66c-61018b621645"}
            console.log(params2);

            cellOptions.innerHTML = "<button onclick='sendAction(\"kickPlayer\"," + params2 + ")'>Kick</button>";

在将参数传递给sendAction函数之前,不要对其进行字符串化

而是字符串化发送到服务器的整个对象。e、 g

data: JSON.stringify({ 'action': cmd, 'params': params }),
通过对其进行编码:

dataType: 'json',
您告诉jQuery在响应中需要一个JSON字符串(来自后端,即我们的PHP代码)。因此,在回调中,jQuery解析字符串,由于您没有从后端接收到有效的JSON字符串,因此无法解析它,并抛出此解析器错误

编辑:请参见jQuery文档:

类型:字符串您期望从服务器返回的数据类型


从将
console.log(params)
放在
sendAction
的开头。它打印什么?对象{id:“939952da-23df-4ff1-b66c-61018b621645”}@Rory我之前已经尝试过这个,没有使用stringify。我只是直接传递了对象,但也不起作用,在那里我遇到了一个讨论,说使用JSON代替。问题在于服务器响应,请求看起来很好。您从后端得到什么?警报框中的确切文本是什么?这对于理解错误非常重要。我一直在关注这一点,认为这可能与此有关,但太缺乏经验,无法确定。我应该把它移走还是换成别的东西。。这可能是原因之一。。。但由于服务器代码是隐藏的。。。而且警报文本还不清楚。。。这也可能是服务器端的解析错误。您应该从PHP代码返回有效的JSON;-)如果您想返回一个对象,只需使用
json\u encode()
非常感谢!我一直认为这是一个JS问题,甚至没有注意到PHP代码中的问题
dataType: 'json',
 dataType (default: Intelligent Guess (xml, json, script, or html))