我应该在哪里添加response.addHeader?

时间:2014-11-02 05:46:42

标签: jquery ajax

我应该在哪里添加此功能response.addHeader(" Access-Control-Allow-Origin"," *");避免错误" No' Access-Control-Allow-Origin'标头出现在请求的资源上#34;。

这是我的ajax功能。现在我只能从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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

我想您可以尝试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

答案 1 :(得分:0)

首先,您尝试通过AJAX访问另一个域,因此应在另一个域上启用SOP (Same-origin policy)

您可以在header事件中添加beforeSend,见下文

beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }