簡體   English   中英

如何從javascript發布,然后使用發布響應進行更新?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM