我应该在哪里添加这个函数response.addHeader("Access-Control-Allow-Origin","*");以避免出现错误"No 'Access-Control-Allow-Origin‘header is present on the requested resource“。
这是我的ajax function.Now我可以我只能从www.myspansalon.com获得ajax响应。我想从myspansalon.com获得响应。
<script>
function getdetails(rate){
var itemid=jQuery("#itemid").val();
var userid=jQuery("#userid").val();
jQuery("#clear").show();
jQuery("#uservote").text('loading...');
jQuery.ajax({
type: "POST",
url:"http://www.myspansalon.com/joomla/index.php?option=com_flexicontent&format=raw&task=myvoting",
data: {item_id:itemid, user_id:userid, rating:rate }
}).done(function(result){
jQuery("#uservote").text(result);
});
}
</script>
发布于 2014-11-02 13:53:18
我想你可以试试xhr.setResponseHeader("Access-Control-Allow-Origin", "*");,请检查你下面修改过的代码。我不确定它是否可以工作,因为基本上响应头是在服务器中设置的,而不是在客户端。
<script >
function getdetails(rate) {
var itemid = jQuery("#itemid").val();
var userid = jQuery("#userid").val();
jQuery("#clear").show();
jQuery("#uservote").text('loading...');
jQuery.ajax({
type: "POST",
url: "http://www.myspansalon.com/joomla/index.php?option=com_flexicontent&format=raw&task=myvoting",
data: {
item_id: itemid,
user_id: userid,
rating: rate
},
success: function (response, status, xhr) {
xhr.setResponseHeader("Access-Control-Allow-Origin", "*");
if (status == "success") {
alert(response);
} else {
alert(status + ' - ' + xhr.status);
}
}
}).done(function (result) {
jQuery("#uservote").text(result);
});
} < /script>在服务器端设置响应头的 :-
如果webservice网站是用java开发的,并且使用tomcat作为服务器,那么您可以参考this post。在java web应用程序中,你可以使用javax.servlet.Filter类实现(独立于服务器)。但是,在看过您发布的代码中使用的url后,它似乎是php,所以您可以使用follow this link。
发布于 2014-11-02 13:56:01
首先,您正在尝试通过AJAX访问另一个域,因此应该在另一个域上启用SOP (Same-origin policy)。
您可以在beforeSend事件中添加header,如下所示
beforeSend: function(xhr) {
xhr.setRequestHeader('x-my-custom-header', 'some value');
}https://stackoverflow.com/questions/26696447
复制相似问题