Javascript AJAX-跨域don';行不通
我读了很多关于json是XMLHttpRequests的伟大替代品的文章。我试过了,但不起作用:Javascript AJAX-跨域don';行不通,javascript,jquery,ajax,cross-domain,Javascript,Jquery,Ajax,Cross Domain,我读了很多关于json是XMLHttpRequests的伟大替代品的文章。我试过了,但不起作用: $.ajax({ crossDomain: true, url: settingsURL, type: "POST", dataType: 'JSONP', parseAsHtml: true, cli: 'help', success: function(data) { data=$(data).find('div#TestDivContent');
$.ajax({
crossDomain: true,
url: settingsURL,
type: "POST",
dataType: 'JSONP',
parseAsHtml: true, cli: 'help',
success: function(data) {
data=$(data).find('div#TestDivContent');
$('#TestDivContent').append(data);
},
error: function() {
$('#TestDivContent').append("<p>Can't Connect</p>");
}
});
$.ajax({
跨域:是的,
url:settingsURL,
类型:“POST”,
数据类型:“JSONP”,
parseAsHtml:true,cli:'help',
成功:功能(数据){
data=$(data.find('div#TestDivContent');
$('#TestDivContent')。追加(数据);
},
错误:函数(){
$(“#TestDivContent”).append(“无法连接””;
}
});
我得到了
Uncaught SyntaxError: Unexpected token <
未捕获的语法错误:意外标记<
请检查下面的代码,该代码在跨域()中起着迷人的作用。
如果您同时控制两个域,即Domain1.com和Domain2.com
//Ajax Script in Domain1.com
//No Conflict is the code snippet from my sample code You can delete it if not required no issues
<script type="text/javascript">jq1102 = jQuery.noConflict( true );</script>
<script type="text/javascript" >
function jsonp(n){
//GET Response is Here
alert(n);
}
jq1102(function(){
jq1102.ajax({
type: "GET",
dataType: "jsonp",
url: 'http://domain2.com/ClientSiteApi/',
crossDomain: true,
complete: function(data){
//Any Action You Like to Trigger After Complete
},
error: function(jqXHR, textStatus, ex) {
//Nothing to Change Here
}
});
})
</script>
echo 'jsonp("hello")'; //You Can place JSON string in replace of the Hello String
上面的错误意味着服务器响应不是JSONP而是HTML(或XML)。我完全知道它是由什么引起的。只是需要一个解决方案。我不知道如何修复它。如果您无法编辑服务器端代码,让我们将数据类型更改为“text”。如果我更改它,就会得到XMLHttpRequest错误JSON不能替代XMLHttpRequests,它们是不同的东西。这篇文章与你的问题相关:–最后一篇,支持https