首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该在哪里添加response.addHeader?

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

Stack Overflow用户
提问于 2014-11-02 13:46:42
回答 2查看 2.4K关注 0票数 0

我应该在哪里添加这个函数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获得响应。

代码语言:javascript
复制
<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>

EN

回答 2

Stack Overflow用户

发布于 2014-11-02 13:53:18

我想你可以试试xhr.setResponseHeader("Access-Control-Allow-Origin", "*");,请检查你下面修改过的代码。我不确定它是否可以工作,因为基本上响应头是在服务器中设置的,而不是在客户端。

代码语言:javascript
复制
<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

票数 0
EN

Stack Overflow用户

发布于 2014-11-02 13:56:01

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

您可以在beforeSend事件中添加header,如下所示

代码语言:javascript
复制
beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26696447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档