[英]problems with cross domain ajax
我很簡單,試圖從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>
似乎應該可以正常工作,但是我在控制台中不斷收到錯誤消息:“意外的':'字符”
問題是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請求,因為它現在位於您自己的域中。
希望這能清除一切。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.