我在使用node.js的表單中有一個Ajax問題,我正在開發一個簡單的node.js貨幣轉換器應用程序並使用前端(HTML)填充數據阿賈克斯。然而,它不工作,任何幫助都非常感激。謝謝。在form.js中使用表單方法作爲post的Ajax
0
A
回答
1
1.前端
更改此
xmlhttp.open("GET","http://localhost:9099/", true);
到
xmlhttp.open("POST","http://localhost:9099/", true);
作爲後端服務器得到了答案接受POST
。
2.後端
從底部取下response.end
和response.writeHead
,並將其移動到您的計算store
。
您的最終代碼:
http.createServer(function(request, response) {
switch (request.method) {
case 'POST':
if (request.url === "/") {
var requestBody = '';
request.on('data', function(data) {
requestBody += data;
if (requestBody.length > 1e7) {
response.writeHead(413, {
'Content-Type': 'text/plain'
});
response.end('Request Entity is too large');
}
});
request.on('end', function(data) {
console.log(requestBody);
var formData = qs.parse(requestBody);
var requestBofy = '';
// I renamed the callback parameter to response2
https.get('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml?8f65cd5d1af1727c40d2a89a31c6a0f1', function(response2) {
if (response2.statusCode >= 200 && response2.statusCode < 400) {
response2.on('data', function(data_) {
requestBofy += data_.toString();
});
response2.on('end', function() {
console.log(requestBofy);
parser.parseString(requestBofy, function(err, result) {
console.log('FINISHED', err, result);
var xml = requestBofy;
var parseString = require('xml2js').parseString;
parseString(xml, function(err, result) {
var jFile = JSON.stringify(result);
var parsedResponse = JSON.parse(jFile);
var rateHUF = parsedResponse['gesmes:Envelope']['Cube'][0]['Cube'][0]['Cube'][6]['$'].rate;
var rateINR = parsedResponse['gesmes:Envelope']['Cube'][0]['Cube'][0]['Cube'][22]['$'].rate;
var store = 'No value';
if (formData.vSelectedValue == 'HUF' && formData.vSelectedValue2 == 'INR') {
store = Math.round(formData.vFirstNo * (rateINR/rateHUF));
} else {
store = Math.round(formData.vFirstNo * (rateHUF/rateINR));
}
// Your response should end here
response.writeHead(200, {
"Content-Type": "text/html"
});
response.end('Your Answer: ' + store);
});
});
});
}
});
});
} else {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end('404 - Page not found');
}
break;
case 'GET':
if (request.url === "/") {
getFileContent(response, 'public/home.html', 'text/html');
} else {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end('404 - Page not found');
}
break;
default:
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.end('404 - Page not found');
}
}).listen(9099);
+0
請不要讓我感到尷尬,但是對於node.js來說,我相對較新,我的問題是爲什麼我們會將結果發佈到新的html頁面? response.writeHead(200,{ 「Content-Type」:「text/html」 }); response.end('Your Answer:'+ store); 而不是將數據發佈到文本框中的home.html上?因爲整個問題的結果是填充文本框,所以我們不應該在response.write()中使用「home.html」? – user3920709
相關問題
- 1. 爲什麼我的表單不能使用POST方法工作?
- 2. 使用jQuery AJAX POST方法
- 3. 使用POST方法沒有Ajax(jQuery Mobile的)提交表單
- 4. 使用php的表單方法post
- 5. 使用post方法的AJAX調用
- 6. 轉換$ .post方法爲$ .ajax方法
- 7. AJAX中的POST方法
- 8. post方法ajax
- 9. 如何使用HTML表單POST方法
- 10. Ajax post方法不起作用
- 11. jQuery AJAX POST方法不起作用
- 12. 使用jquery的Ajax Post方法
- 13. 使用POST方法的AJAX回調
- 14. 如何在JavaScript中的AJAX調用中使用「POST」方法?
- 15. 如何在AJAX中使用JSON編碼表單值POST POST表單
- 16. 簡單的方法來測試AJAX Post?
- 17. 爲什麼隱藏的框在php中使用post方法在表單
- 18. 使用方法爲POST時在移動瀏覽器中使用AJAX的錯誤
- 19. Ajax請求登錄不工作使用$ .post()方法在jquery
- 20. 使用表單中的輸入在$ .ajax()方法中設置var?
- 21. 使用ajax post方法不起作用的變量
- 22. AJAX POST到MVC5的操作方法
- 23. 爲什麼RESTAPI的POST方法在POSTMAN中工作,但使用AJAX的工作方式不同?
- 24. AJAX調用POST方法
- 25. 使用JS或AJAX的HTML表單POST使用JS或AJAX
- 26. 簡單的POST方法不起作用
- 27. 使用$ .Ajax()與POST方法發送JSON
- 28. 如何從使用AJAX POST方法
- 29. 使用jquery .ajax()提交與post方法
- 30. 使用Ajax方法讀取POST請求
在前端腳本中,'form'標籤具有'POST'的方法,但它是沒有用的。你能否嘗試將'xmlhttp.open()'的第一個參數從'GET'改爲'POST'? –
我嘗試在xmlhttp.open()中使用POST,並且我使用xmlhttp.responseText和home.html獲取空數據,因爲它包含沒有文本而不是home.html的文本。 – user3920709
您還有'response.end()'功能評論。取消註釋。 –