我有以下脚本
$.ajax({
type:"GET",
url:"views/jquery/js/private/visual_constructor/proxy.php",
data:null,
timeout:55000,
dataType:"xml",
error:function(XMLHttpRequest, textStatus, errorThrown){
alert("error="+XMLHttpRequest+" error2="+textStatus+" error3="+errorThrown);
},
success:function(response){
alert('sucess');
}
});
以及proxy.php的内容如下。
<?php
header('Content-type: application/xml');
echo file_get_contents('http://server.name/somefile.php');
?>
它连接到somefile.php
生成一些xml内容并打印它的另一台服务器。
它在Chrome中完美运行,但在Mozilla中它显示了我的错误警告。
这里有什么问题?
更新1
我正在使用萤火虫,它说一切都很好。甚至它显示了来自服务器的响应。这是我的错误提示打印:
error=[object XMLHttpRequest] error2=parsererror error3=parsererror
更新2
当我从Mozilla打开http://server.name/somefile.php时,它会向我显示以下消息:
XML Parsing Error: not well-formed
Location: http://authoringtool/views/jquery/js/private/visual_constructor/proxy.php
Line Number 8, Column 94: <xs:annotation><xs:documentation xml:lang="en">Network Type</xs:documentation></xs:annotatin>
但是当我从Chrome打开它时,它没有显示错误,但打印somefile.php的内容
答案 0 :(得分:0)
我认为您正在进行跨服务器请求(更重要的是,跨域请求),因此,您需要执行额外的安全性工作。
https://developer.mozilla.org/En/HTTP_access_control
https://developer.mozilla.org/En/Server-Side_Access_Control
http://arunranga.com/examples/access-control/
萤火虫
此外,使用Firebug,调试更好作为对象,然后您可以检查返回的对象。
console.log({ "error": XMLHttpRequest, "error2": textStatus, "error3": errorThrown });
答案 1 :(得分:0)
尝试从查询本身设置内容类型:
$.ajax({
type:"GET",
url:"views/jquery/js/private/visual_constructor/proxy.php",
data:null,
timeout:55000,
contentType: "application/xml;charset=UTF-8",
dataType:"xml",
error:function(XMLHttpRequest, textStatus, errorThrown){
alert("error="+XMLHttpRequest+" error2="+textStatus+" error3="+errorThrown);
},
success:function(response){
alert('sucess');
}
});
答案 2 :(得分:0)
您打开:
<xs:annotation>
关闭:
</xs:annotatin>
修正拼写错误,问题应该消失。