6

以下の jQuery ajax() 呼び出しを使用しても機能しません。beforeSendパラメータを削除すると、正常に動作します。Chrome の Web インスペクターによると、動作していないときのステータスは "Load Cancelled" です。jQuery 1.7.2 および 1.9.1、Chrome、Safari、Firefox でテスト済み。入力したパラメーターに関係なく失敗しますsetRequestHeader(たとえば、 "test" 、 "true" も失敗します)。私beforeSendが含めると、リクエストヘッダーに次のものが含まれます: Access-Control-Request-Headers:accept, cache-control, origin.それが重要な場合api_urlは、別のサブドメインにありますが、サーバーに CORS を設定して、他のすべてのインスタンスで正常に動作するようにします。Cache-Control ヘッダーを設定する必要があるため、Send の前に削除することはできません。

$.ajax({
    url: api_url, 
    beforeSend : function (xhr){xhr.setRequestHeader('Cache-Control', "public");} , 
    dataType: "json", 
    success: successCallback, 
    error: APIError 
});

update : ステータスとして 200 で応答するため、node.js サーバーに到達しているようです。サーバーがヘッダーにどのように応答しているかに問題がある可能性はありますか? 繰り返しますが、使用するキー/値パラメーターに関係なくこれを行うため、キャッシュに関連することはありません。

update2 : コンソールで、「リクエスト ヘッダー フィールド Cache-Control は Access-Control-Allow-Headers では許可されていません」というメッセージが表示されます。私はそれをグーグルで試しましたが、答えには近づいていません。リクエストヘッダーフィールドが受け入れられないようです。これは、ヘッダーを受け入れるように node.js を構成する必要があるということですか?

4

0 に答える 0