1

我在 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 浏览器兼容?

我尝试了其他发布这样的方法。方法一:

$(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 中的方法 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 中没有调用该服务。有什么建议么..

4

2 回答 2

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>();
    }

响应头

于 2013-02-22T11:57:03.330 回答
0

jQuery.ajax中阅读有关标头的信息。

在 jQuery AJAX GET 调用中传递请求标头

于 2013-02-22T07:57:16.763 回答