0

我在 jquery 的 ajax 调用中传递标头时遇到问题。

$.ajax({
    url: '/resources/ajax/customize.aspx?' + qs + '&nocache=' + Math.random(),
    contentType: "application/json",
    headers: values,
    context: $this,
    cache: false,
    success: function(data) {
          //do stuff here
    }
});

在大多数情况下,它会正确获取标头值,但有时它不会获取任何标头值。我确保“值”变量包含数据。我想知道是否有任何特定情况下标头不会在 ajax 中传递?

更新: 我试过了:

 $.ajax({
     url: '/resources/ajax/customize.aspx?' + qs + '&nocache=' + Math.random(),
     contentType: "application/json",
     beforeSend: function(xhr) { xhr.setRequestHeader('values',values); },
     //headers: values,
     context: $this,
     cache: false,
     success: function(data) {
                  //do stuff here
     }
 });

没有运气。

更新 2

想通了问题。有一个带有换行符的 URL 变量,因此换行符导致不传递标头。

4

1 回答 1

1

我面临着同样的问题。通过使用 jquery(或者在 JS 中执行) $.trim() 方法摆脱了换行符。就我而言,我知道 \n\r 不会合法地成为价值的一部分。这必须检查修剪以修复它。

于 2013-06-21T11:48:14.327 回答