我有以下html,当我点击按钮时,警报只能在mozilla firefox中使用。为什么?
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({url:"https://graph.facebook.com/1524623057/",
success:function(){
alert(1);
}});
});});
</script>
</head>
<body>
<button>send request</button>
</body>
</html>
答案 0 :(得分:2)
看起来该请求返回JSON数据类型。代码在收到结果并且无法识别JSON时抱怨冒号。
试试这个:
$.ajax("https://graph.facebook.com/1524623057/",
{
success:function(){
alert(1);
},
dataType: 'json'
}
);
此外,成功回调会获取一个响应参数,您可以使用它来检查JSON。
答案 1 :(得分:2)
facebook的结果不是正确的json,因为它有换行符和标签 - 同样,它也用作text / javascript。
Facebook支持jsonp,所以你可以这样做:
$.ajax({
url: 'https://graph.facebook.com/1524623057/',
type: 'get',
dataType: 'jsonp'
}).done( function( data ){
// the data!
});
这基本上会对?callback = jQuery23423234234或者为facebook生成任何随机id,返回一个可以调用的函数。
如果您想自己解析,请执行以下操作:
告诉$.ajax
使用“text”类型,例如
$.ajax({
url: 'https://graph.facebook.com/1524623057/',
dataType: 'text'
})
然后清理它。这里有一个关于清理那种js的答案,所以你可以使用$.parseJSON
而不是把它扔进一个新函数或评估它。 Converting multiline, indented json to single line using javascript
这样,您可以var data = $.parseJSON( cleanedUpJsonFromFacebook )
并访问对象属性。