jquery - 语法错误: invalid label

标签 jquery

当我跨域通过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/

相关文章:

php - 为什么我的 jQuery AJAX 调用会在浏览器中打开响应?

php - 在 php7 中发布 ajax 数据的问题

php - Ajax 分页不会更改事件链接

javascript - 最近的视频或页面?

javascript - 无法将事件处理程序添加到带有 ID 的按钮中

javascript - 在开发 WordPress 插件时无法解决使用 cookie 已发送 header 的问题吗?

javascript - 错误 : this. 样式未定义?

javascript - 图像上从左到右的淡入淡出效果

javascript - 这个 Prototype Ajax 调用的 jQuery 等价物是什么?

javascript - jquery调整大小完成后插入javascript