2014-01-23 15 views
0

送我實在無法理解這種行爲:的Javascript semicolumn削減消息UrlFetchApp

我有一個谷歌應用程序的腳本它試圖將消息發送到另一臺服務器:

var payload = 
    { 
    'message' : 'test1;test2'; 

    }; 


    var options = 
    { 
    "method" : "post", 
    "payload" : payload, 
     muteHttpExceptions: true 

    }; 

    try{ 
    var resp = UrlFetchApp.fetch("mywebsite", options); 
    } 
    catch(e){ 
     Logger.log("Exception in sending data"); 
     return false; 
    } 

的服務器,這使用Django-rest-framework運行Django,只接收'test1'...之後的所有內容;被切斷。

我錯過了什麼?

回答

0

在我的測試中,無論在有效載荷對象中使用單引號還是雙引號,都會得到一致的結果,這導致我相信這可能是服務器端不喜歡單引號的情況。

function myFunction() { 
    var test1 = {"value1" : "something;something"}; 
    var test2 = {"value2" : 'something;something'}; 
    var test3 = {"firstvar" : test1, 
      "secondvar" : test2}; 

    Logger.log(test1); 
    Logger.log(test2); 
    Logger.log(test3); 
} 

給了我一貫的記錄結果

[14-01-25 22:22:00:460 EST] {value1=something;something} 
[14-01-25 22:22:00:460 EST] {value2=something;something} 
[14-01-25 22:22:00:460 EST] {secondvar={value2=something;something}, firstvar=  {value1=something;something}} 

所以我的建議是嘗試這種使用雙引號,看看是否有效載荷來通過完整:

var payload = {"message" : "test1;test2"}; 

當測試此http://www.posttestserver.com/ UrlFetchApp.fetch()與單引號和雙引號一起工作,再次讓我想到這是你的服務器如何處理有效載荷數據。