我很容易从http://bootcamp.jit.su/welcome/marian
获取消息这是我正在使用的代码
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<meta charset="utf-8" />
<title>Globant :: Welcome to the HTML5 bootcamp</title>
</head>
<body>
</body>
<script type="text/javascript">
$(document).ready(function(){
var URL = "http://bootcamp.jit.su/Welcome/marian?callback=?";
var request = jQuery.noConflict().ajax({
url: URL,
type: "GET",
dataType: 'jsonp',
processData: false,
success: function(data) {alert('hola') ;}
});
});
</script>
</html>
它似乎应该可以正常工作,但我在控制台中不断收到错误消息:“意外':'字符'
答案 0 :(得分:1)
事情是JSONP不是一个真正的AJAX请求。这是一种欺骗浏览器的解决方法,它通过向标头插入脚本标签来实现。想想,这是您的JSONP支持的URL
domain.com/jsonp.aspx?callback=的 processJSONP 强>
processJSONP是您页面中已有的函数,请求返回类似于此的脚本
processJSONP( {
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
});
它使用您需要的数据调用您的函数,并且您可以执行您想要执行的操作。当然,数据不必是JSON对象,也可以获得更多回调,如
processJSONP("data1=11");
processJSONP("data2=22");
processJSONP("data3=33");
因此,如果URL不支持,您将无法获得所需的数据。
要实现您想要的功能,您必须使用服务器端脚本(例如ASP.Net,PHP等)并通过服务器端对象(WebRequest,HttpRequest)请求内容,当您获得它时,您可以使用它作为JSONP或标准AJAX请求,就像它现在在您自己的域中一样。
希望这能清除一切。