最終的にAPI呼び出しの一部となるコードをいくつか継承しました。既存のコードに基づいて、呼び出しはaccess_tokenでJSONコードを取得するための投稿です。これは通常簡単であり、他のすべてのAPIと同じですが、このコードでは、クライアントシークレット用にカスタマイズされたhttpheaderフィールドが必要です。
ObjectiveRequestでURLRequestなどを使用してこの作業を行うことができましたが、今ではWebコンポーネントの呼び出しを作成しているため、ロードブロッキングになりました。
私はかなり標準的なjqueryポストを使用しています
$.post('https://url.com',
{access_token:'XXXXXXXXXXXXXXXXXXX',
function(data){
console.info(data);
}, 'json');
ヘッダーにHTTP-EQUIVが含まれています。しかし、投稿は決してデータを取得せず、サーバー自体は呼び出しが行われたことを認識しません(不完全な呼び出しでも)。
このコードを破棄して最初からやり直さなければならない場合がありますが、以前にこの問題に遭遇したことがある人は、洞察を提供してください。
投稿したものには構文エラーがありますが、$.post()
を介してHTTPヘッダーを渡すことができないため、違いはありません。
JQueryバージョン> = 1.5を使用している場合、$.ajax()
に切り替えてheaders
( docs )オプションを渡します。 (jQueryの古いバージョンを使用している場合は、beforeSend
オプションを使用してそれを行う方法を示します。)
$.ajax({
url: 'https://url.com',
type: 'post',
data: {
access_token: 'XXXXXXXXXXXXXXXXXXX'
},
headers: {
Header_Name_One: 'Header Value One', //If your header name has spaces or any other char not appropriate
"Header Name Two": 'Header Value Two' //for object property name, use quoted notation shown in second
},
dataType: 'json',
success: function (data) {
console.info(data);
}
});
。post()を使用したい場合 then これにより、jqueryで行われる今後のすべてのリクエストにヘッダーが設定されます
$.ajaxSetup({
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
});
その後、通常どおり.post()を呼び出します。
あなたが言ったように試しましたが、最初のパラメータのみが通過し、残りはすべてundefined
としてサーバーに表示されます。 JSONWebToken
をヘッダーの一部として渡します。
.ajax({
url: 'api/outletadd',
type: 'post',
data: { outletname:outletname , addressA:addressA , addressB:addressB, city:city , postcode:postcode , state:state , country:country , menuid:menuid },
headers: {
authorization: storedJWT
},
dataType: 'json',
success: function (data){
alert("Outlet Created");
},
error: function (data){
alert("Outlet Creation Failed, please try again.");
}
});
将来の開発者向けにこのスレッドを更新したかっただけです。
JQuery> 1.12は、JQuery.post($ .post({...})を介してリクエストの小さな部分をすべて変更できるようになりました。 https://api.jquery.com/の2番目の関数シグネチャを参照してください。 jquery.post/