在jQuery AJAX POST firefox中传递头值

时间:2013-02-22 06:47:28

标签: c# jquery firefox xmlhttprequest

我在jQuery AJAX POST方法中调用了Rest服务。我需要在标头中传递两个值。 Firefox既不会将标头值传递给服务,也不会调用REST服务。
我的Jquery代码

var postCall = function () {
    $.support.cors = true;
    var HFAssoRefId = document.getElementById('MainContent_HFAssoRefId').value;      
    var Input = {
        AssoRefId: HFAssoRefId
    };   
    alert(JSON.stringify(Input));
    var url = document.URL;
    var name = "samuel";        
    $.ajax({ 
        type: "POST",
        beforeSend: function (xhr) {
            xhr.setRequestHeader("PartnerName", name);
            xhr.setRequestHeader("URL", url);
        },
        url: "http://localhost:40680/Service.svc/TokenInsertion",
        data: JSON.stringify(Input),
        contentType: "application/json",
        dataType: "json",
        success: function (response) {
            alert(response);
        },
        error: function (xhr, status, error) {              
            alert(status);
        }
    });
}


是否有任何其他方法来传递jQuery AJAX中的标头值。它适用于Internet Explorer 8.如何使其与Firefox浏览器兼容?

我尝试了其他方法发布这样的内容。 方法1:

$(document).ready(function () {
    $("#button").click(function(){   
        var name1 = "samuel";
        var url1 = document.URL;  
        $.post('http://localhost:41855/IntegrationCheck/Default.aspx', {
            name : name1,
            url  : url1
        },function (data) {
            alert(data);
        });
    });
});
AJAX jQuery中的

和MEthod 2:

function setHeader() {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", url, true); 
    xhr.setRequestHeader('Accept', '');
    xhr.setRequestHeader("Content-Type", "application/json");
    xhr.setRequestHeader("Accept", "text/xml;application/json");
    xhr.setRequestHeader("PartnerName", name);
    xhr.setRequestHeader("URL", url);
}

但是未传递标头值,并且未在Firefox中调用该服务。 任何建议..

2 个答案:

答案 0 :(得分:1)

我曾经按照以下方法设置请求标头。如果适合你,请试试。

[脚本]

 $("#element").ajaxSuccess(function (evt, request, settings) {
    $('.Status').html(request.getResponseHeader("Status"));
  });

[查看]

  <h2>Status:</h2><h2 class="Status" style="color:Red;">

[控制器]

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Save(Order orders)
    {
        string status = string.Empty;

        if (orders != null)
        {
            OrderRepository.Update(orders);
            status = "Updated";
        }

        Response.AddHeader("Status", status);            
        return data.GridActions<EditableOrder>();
    }

Response header

答案 1 :(得分:0)