[英]How do I POST from javascript then update with the post response?
我有一個在iron.io上運行的工作,該工作在將有效負載發布到它時運行。
然后,此作業將返回文本字符串。
我希望有一個文本字段,用戶可以在其中輸入一些文本,將其發布到該URL,然后使用原始鍵入的文本和工作人員的響應來更新文本區域。
我如何開始解決這個問題?
這有點類似於在Rails中使用帶有response_to方法的Jquery(我認為基本上是Ajax),但是我沒有使用Rails。 我認為可以使用前端上的適當javascript來完成所有操作,並且我將Ruby用於輔助文件。
我通讀了這篇文章: 如何返回異步調用的響應? 但我認為我不清楚要做什么,尤其是在工人方面。
但我沒有使用Rails。
你在用什么
我不清楚具體要做什么,尤其是在工人方面。
當服務器端接收到請求時,它必須發送一個包含數據的響應。 據我所知,iron.io是一種卸載工作的方式,您的服務器端應用程序不希望花費這些資源來做自己的工作。 因此,服務器端應用程序必須有一種方法可以向iron.io工作者詢問結果。 當服務器端應用程序獲得結果時,您的應用程序必須返回響應。
我如何開始解決這個問題?
在客戶端,使用jQuery非常簡單。 假設用戶在文本字段中輸入完畢后單擊了按鈕?
1)使用jQuery在按鈕上放置onclick事件處理程序:
$( "#button_id" ).click(function() {
//Additional code goes here
});
2)獲取文本字段的文本,例如
var original_text = document.getElementById("texfield1").value;
3)發送一個ajax請求到URL。
4)在成功ajax函數中,將#1添加到響應返回的字符串中。
5)在文本字段中插入組合的文本。
$.post( "http://www.somesite.com", function(response) {
$( "#textfield1" ).val( original_text + response );
}
5)可能取消提交(如果是提交按鈕)
$( "#button_id" ).submit(function( event ) {
//Additional code goes here
event.preventDefault();
});
您無法使用Java腳本將發布請求發送到外部URL。 由於安全原因,瀏覽器不允許這樣做(以防止CSRF攻擊)。
例如:如果您的網站網址是“ www.yoursitename.com”,則可以將ajax發布請求發送到“ yoursitename.com/XXX/YYY ...”,但不能將發布請求發送到“ iron.io/XXX/YYY”。 ..”。 瀏覽器不允許第二個。
您必須為此實現一些后端代碼。 讓后端代碼發送發布請求並轉發“ iron.io”收到的響應。 然后,您的ajax調用可以發送到服務器的后端(本地)。 接收來自服務器的響應並更新文本。 您的后端代碼在這里就像一種連接器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.