2014-10-04 87 views
0

我有一個運行在iron.io上的作業,當有效載荷發送給它時運行。如何從javascript POST然後使用post響應進行更新?

此工作然後返回一個文本字符串。

我想有一個文本字段,用戶可以在其中鍵入一些文本,將其張貼到該URL,然後使用最初輸入的文本和工作人員的響應來更新文本區域。

我該如何開始分解這個問題?

這是有點類似於使用jQuery的Rails與respond_to方法(基本上我認爲Ajax),但我沒有使用Rails。我想認爲這可能都是用前端的appropraite javascript來完成的,而我正在使用Ruby作爲worker文件。

我看完這篇文章:How do I return the response from an asynchronous call?但我想我不清楚具體做什麼,特別是在工人方面。

回答

0

但我沒有使用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(); 
}); 
0

您不能發送POST請求外部URL與Java腳本。由於安全原因,瀏覽器不允許它(爲了防止CSRF攻擊)。例如:如果您的網站網址是「www.yoursitename.com」,那麼您可以發送ajax郵件請求到「yoursitename.com/XXX/YYY ...」,但您不能發送郵寄請求到「iron.io/」 XXX/YYY ......「。瀏覽器不允許第二個。

你必須爲此實現一些後端代碼。讓後端代碼發送post請求並轉發「iron.io」收到的響應。然後你的ajax調用可以發送到你服務器的後端(本地)。接收來自服務器的響應並更新文本。您的後端代碼在這裏像一種連接器。