我遇到了获取返回值的问题(content-type:“text / xml”)。通过直接访问此URL,我可以获得返回值:
https://[domain_name]/myfolder/myapi/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>
如果错误(请在MyFolder
中的HTML中调用),请帮我纠正这些替代方案,因为它始终提醒“失败”。
$.ajax({
type : "GET",
url : "interface/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>",
dataType : "text/xml",
success : function(msg){
alert('Success');
}
error : function(msg) {
alert('Failed');
}
});
...或
$.ajax({
type : "POST",
url : "interface/",
data : { xml: escape("<MyTasks><Search></Search></MyTasks>") },
dataType : "text/xml",
success : function(msg){
alert('Success');
}
error : function(msg) {
alert('Failed');
}
});
谢谢。
解
接口必须由https
访问,因此我将url
param更改为绝对URL。我还必须使用"xml"
而不是"text/xml"
作为其dataType
。结果成功,谢谢。
答案 0 :(得分:5)
这会接受POST吗...从你的例子看,它看起来像是GET的设置.. 试试这个:
$.ajax({
type : "GET",
url : "http://blachblahblah.com/abc.html",
dataType : "text/xml",
data : { xml : escape("<xml version='1.0'><MyTasks><Search></Search></MyTasks>") },
success : function(msg){ alert('Success'); } ,
error : function(msg) { alert('Failed'); }
});
答案 1 :(得分:3)
为了简化,我会做以下
假设您使用的是名为script.php的PHP脚本。
var xml_string = "<xml version='1.0'><MyTasks><Search></Search></MyTasks>";
$.get('script.php', {xml: xml_string}, function(){ //your success function
alert('success');
}).error(function(){ //your error function
alert("error");
});
答案 2 :(得分:1)
我不明白为什么要使用dataType?
您想要/需要的是contentType。
来自api.jquery.com:
dataType(默认值:Intelligent Guess(xml,json,script或html)) 类型:字符串 您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它.........
contentType(默认值:'application / x-www-form-urlencoded; charset = UTF-8') 类型:字符串 将数据发送到服务器时,请使用此内容类型。默认为“application / x-www-form-urlencoded; charset = UTF-8”,这在大多数情况下都适用。如果您明确地将内容类型传递给$ .ajax().............
希望这可以提供帮助