こんにちは。
TypeScriptでXMLHttpRequestを使っているのですが、jQuery.ajaxの方が書きやすそうなので
乗り換えようとしています。が、その書き換え方で苦しんでしまっています。
jQueryは3.5です。
↓これ(正常動作を確認済み)を
Typescript
1/* 2** XMLHttpRequest版 3*/ 4function _login(key: string, accountId: string, password: string): void { 5 const httpRequest = new XMLHttpRequest(); 6 7 httpRequest.open("POST", "https://xxxxx/xxx/xxxxx"); 8 httpRequest.setRequestHeader("Content-Type", "application/json"); 9 httpRequest.setRequestHeader("XXXXX", key); 10 11 httpRequest.onreadystatechange = (): void => { 12 const readyState = httpRequest.readyState; 13 if (readyState === XMLHttpRequest.DONE) { 14 const status = httpRequest.status; 15 if (status === 201) { //Created 16 const sessionJson = JSON.parse(httpRequest.responseText); 17 nextStep(accountId, sessionJson.token as string); 18 } 19 } 20 } 21 httpRequest.send(`{"accountId":"${accountId}","password":"${password}"}`); 22}
↓こんな感じに書き換えて見たのですが400(Bad Request)になってしまいます。
TypeScript
1/* 2** jQuery.ajax版 3*/ 4function login(key: string, accountId: string, password: string): void { 5 $.ajax("https://xxxxx/xxx/xxxxx", { 6 type: "POST", 7 contentType: "application/json", 8 headers: { 9 'XXXXX': key 10 }, 11 data: { 12 accountId: accountId, 13 password: password 14 }, 15 dataType: "json" 16 }) 17 .done((response: any) => { 18 const sessionJson = JSON.parse(response); 19 nextStep(accountId, sessionJson.token as string); 20 }) 21 .fail(() => { 22 console.log("err!"); //400 BadRequest 23 }); 24}
Bad Requestが返るということはAPIを叩く事は出来ている。が叩き方が悪いのだと思っています。
正しく叩くにはどう書けは良いのでしょうか。
JQueryAjaxSettingsのどれがヘッダでどれがボディに当たるのかがわからなくて
検索したり、試行錯誤したり、といった状態です。
よろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー