JSON Stringify & AJAX parse errors
JSON Stringify & AJAX parse errors
我已经尝试了几个小时,尝试了我在网上可能找到的所有建议,但它仍然失败。当我使用 JSON.stringify 对函数参数进行编码,然后通过 AJAX 将其传递给我的 PHP 处理程序时,我收到一个警报弹出窗口,说解析器错误。
这显然是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>";
阿贾克斯
function sendAction(cmd, params)
{
$.ajax({
type: "POST",
url: "handler.php",
data: { 'action': cmd, 'params': params },
dataType: 'json',
success: function(data)
{
if (data['status'] == 'failed')
{
}
else if (data['status'] == 'success')
{
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Status: " + textStatus); alert("Error: " + errorThrown); alert("Message: " + XMLHttpRequest.responseText);
}
});
};
通过编码:
dataType: 'json',
你告诉jQuery在响应中期望一个JSON字符串(来自后端,即我们的PHP代码)。因此,在回调时,jQuery 会解析字符串,并且由于您没有从后端接收到有效的 JSON 字符串,因此它无法解析它,并抛出此解析器错误。
编辑:参见jQuery文档:
dataType (default: Intelligent Guess (xml, json, script, or html))
类型:字符串 期望从服务器返回的数据类型。
从 http://api.jquery.com/jquery.ajax/
在
将参数传递给 sendAction 函数之前,不要将它们字符串化。
而是字符串化您发送到服务器的整个对象。
data: JSON.stringify({ 'action': cmd, 'params': params }),
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 通过Ajax将JavaScript函数传递给PHP文件
- AJAX语法错误:JSON.parse:意外字符
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符
- 具有相同数据的Ajax错误(parserror:SyntaxError:JSON.parse:JSON数据的第1行第1列
- JSON Stringify & AJAX parse errors
- Parse child of XML (AJAX)
- JSON.parse 不适用于从 AJAX 调用返回的 JSON 字符串
- 错误 JSON.parse 使用 ajax con pusher PHP
- "SyntaxError:JSON.parse:意外字符"将多个变量从AJAX传递到PHP时出错
- jQuery ajax - SyntaxError: JSON.parse with fine json
- 触发器.IO ajax ->试图将文件附加到Parse模型
- Parse's API说使用curl请求.我想使用AJAX
- 为什么我的AngularJS视图没有得到更新与Parse.com JavaScript SDK AJAX调用后
- 通过Ajax和Parse传递Ruby数组