Javascript 未捕获的语法错误:意外的标记,而不是jsonp¿;但是阅读json呢?
我是AJAX和javascript方面的新手,我正在尝试使用一个具有这种结构的api来实现和连接它们 : 像这样使用我的Javascript 未捕获的语法错误:意外的标记,而不是jsonp¿;但是阅读json呢?,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我是AJAX和javascript方面的新手,我正在尝试使用一个具有这种结构的api来实现和连接它们 : 像这样使用我的main.js $(function() { var $JobPositionForDd = $('#JobPositionForDd'); $.ajax({ type: 'GET', dataType: 'jsonp', url: 'http://localhost:8088/JobPositionForDd',
main.js
$(function() {
var $JobPositionForDd = $('#JobPositionForDd');
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://localhost:8088/JobPositionForDd',
success: function(JobPositionForDd) {
console.log('success', JobPositionForDd);
}
});
});
我的索引如下:
<!DOCTYPE html>
<html>
<head>
<title> Api Calls</title>
<link rel='stylesheet' href='style.css'/>
</head>
<body>
<h1> Api calls</h1>
<h2> Job Positions</h2>
<ul id="data"> </ul>
<script src="jquery.js"></script>
<script src="main.js"></script>
</body>
</html>
Api调用
Api调用
职位
我已经阅读了很多其他帖子,一些回答说我必须去掉数据类型的jsonp,但是如果我这样做,我会得到一个错误“请求的资源上没有‘访问控制允许源’头”,因为我正在处理另一个端口8083,所以在chrome的inspect元素上,会给出错误
“未捕获的语法错误:意外标记:
JobPositionForDd?callback=jquery1710980039484146982_1445751566525&_=1445751566537:2“
并将我发送到json的“data”:[“数据”
我不知道为什么它不起作用或至少“连接”成功,我认为这是我正在做的最基本的事情,但仍然是错误的,如果有人能帮助我,我会很高兴的(请):
…意外的标记,不是jsonp,而是读取json
和不同的事物相关,但不同
下面是JSON的一个简短示例:
{"name":"value"}
下面是JSONP的一个简短示例:
someFunctionName({"name":"value"})
JSON是一种用于数据交换的文本表示法。JSONP是一种传输JSON的方法,它绕过了ajax的同源协议限制。基本上,它是封装在函数调用中的JSON,您可以通过向页面添加脚本元素而不是ajax来访问它。浏览器下载并运行“脚本”您的函数将被数据调用
因此,首先要确定的是您是想使用JSON还是JSONP
如果您想使用JSON。。。
…然后,由于同源策略,您确实需要从服务器发送额外的头来启用。这不仅仅是Access Control Allow Origin
,还有更多。为启用CORS的服务器端提供了伪代码。然后您将使用数据类型'json'
(或者更好的是,确保服务器返回正确的内容类型
标题,即应用程序/json
,然后完全关闭数据类型
)
如果您想使用JSONP。。。
…然后服务器端需要查找回调
查询字符串参数,并在回复中使用该参数的值作为JSONP回复中的函数名。例如,如果
/some/api/path?callback=blarg
响应的内容类型
应该是application/javascript
,因为从技术上讲,您返回的是javascript。我想使用JSON,我在Wamp上,所以在httpd.conf的末尾添加了“Header set Access Control Allow Origin:*”,并将数据类型更改为JSON,但我得到了错误“请求的资源上没有‘访问控制允许源代码’标题。”,@Sparkle:正如我所说:“不仅仅是访问控制允许源代码,还有更多”。
/some/api/path?callback=blarg
blarg({"name":"value"})