我想创建一个小网页,询问此服务器(http://resumemanagerrestserver.juanwolf.cloudbees.net/)并使用收到的XML。
但问题出在我做的时候:
var resumes;
jQuery.ajax({
type: "GET",
url: "http://resumemanagerrestserver.juanwolf.cloudbees.net/?callback=?",
contentType: "text/plain; charset=utf-8 ",
dataType: "xml",
success: function (data, status, jqXHR) {
resumes = data;
},
error: function (jqXHR, status) {
// error handler
}
});
我有这样的回应: ML解析错误:找不到元素位置:moz-nullprincipal:{2041758e-b063-4f84-898d-2ff62d487a5d}第1行,第1列:
我尝试使用高级REST客户端进行GET请求,它可以正常工作。
如果某人有解决方案我会欣赏(并且爱他为我生命中的其余部分)
我改变旧代码:
function getResumes() {
var resumes;
var url = 'http://resumemanagerrestserver.juanwolf.cloudbees.net/?callback=?';
var xhr = createCORSRequest('GET', url);
xhr.onreadystatechange = function() {if (xhr.readyState==4) alert("It worked!");};
xhr.setRequestHeader("Content-type", "application/xml");
xhr.setRequestHeader("Connection", "close");
if (!xhr) {
alert('CORS not supported');
return;
}
// Response handlers.
xhr.onload = function() {
resumes = xhr.responseText;
alert('Response from CORS request to ' + url + ': ' + resumes);
};
xhr.onerror = function() {
$('#errorPopupLink').get(0).click();
};
xhr.send();
return resumes;
}
现在,Firebug中的请求不是红色的,但我仍然有这个
XML Parsing Error: no element found Location: moz-nullprincipal:{d9ee4013-542d-4f65-a310-e1719d99bcae} Line Number 1, Column 1
有人有解决方案吗?
答案 0 :(得分:0)
我的问题的答案很简单。问题来自服务器。 编辑部分中的代码客户端是正确的。
此处的服务器(http://resumemanagerrestserver.juanwolf.cloudbees.net/)是使用Spring的JEE服务器。 事实上,如果您不允许外部客户使用您自己的资源(请参阅http://en.wikipedia.org/wiki/Cross-origin_resource_sharing),它们将被阻止。所以我只是添加CORS头来获取*函数,现在它运行良好。
如果您正在搜索如何使用spring创建CORS标头,这篇文章可以帮助您:http://zhentao-li.blogspot.fr/2012/06/enable-cors-support-in-rest-services.html