当我跨域通过AJAX调用REST服务时,遇到语法错误:无效标签
的问题。我的回复是 { "d": 12000 }
它在“d”的双引号处显示错误。
我的代码是这样的:
$.ajax({
type: 'post',
url: 'http://localhost/test.svc/getnumber',
dataType: "jsonp",
crossDomain: true,
contentType: "application/jsonp",
});
如何解决这个问题?
最佳答案
它不起作用,因为您的服务器没有返回 JSONP 值;它应该使用请求查询字符串中的 callback
值,并返回一段包含函数调用的 JavaScript 代码。
例如,$.ajax()
将向 /path/to/script?callback=jsonp_12123123
发送请求,因此您的服务器应返回:
jsonp_12123123({"d": 12000})
使用 PHP,您可以使用以下方法完成此操作:
<?php
// DO NOT USE AS IS, SANITIZE $_GET!!!
echo $_GET['callback'], '(', json_encode(array(
'd' => 12000,
)), ')';
此外,您不需要 contentType: 'application/jsonp'
;它将被发送到服务器,但您正在发布任何数据,因此它是无用的。
关于jquery - 语法错误: invalid label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459542/