我們有一個返回產品信息的web服務。該服務預計在後數據的JSON陣列...的從Google Sheet腳本發送JSON數組到webservice
從一個簡單的HTML測試網頁A示例腳本如下(此按預期工作):
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ // request is array of product IDs e.g. pid:[71,72,74] // request is array of search terms e.g. find:['apples','oranges','pears'] // request can contain requested fields from products // fields:['CostPrice','Published','title','Price'] jQuery.ajax({ url : 'http://somewebsite.com/__getProductData', type: 'POST', dataType : 'json', data: { pid:[658,71,6,700], fields:['pid','CostPrice','type','published','title'] }, success:function(data) { // do something with the response... }); }, error: function( jqXHR, textStatus, errorThrown) {alert('Error Status:' + textStatus + ' Error:'+errorThrown); } } ); }); </script>
Web服務,編寫在PHP中,正確接收這個。轉儲(print_r的)Web服務從客戶端的結果如下數組中接收到的數據:
Array ( [pid] => Array ([0] => 658 [1] => 71 [2] => 6 [3] => 700) [fields] => Array ([0] => pid [1] => CostPrice [2] => type [3] => type [4] => published [5] => title)
現在的問題....我試圖調用從谷歌表腳本的Web服務如下:
function getProduct(pid,datetime) { // var url = 'https://somewebsite.com/__getProductData'; //pid:[658,71,6,700], fields:['pid','CostPrice','type','published','title'] var nids = new Array(658,71,6,700); var fields = ['pid','CostPrice','type','published','title'] var payload = { pid : nids, fields: fields }; var options = { "method": 'POST', "payload": payload }; var response = UrlFetchApp.fetch(url, options); Logger.log(response); }
當PHP Web服務是由谷歌表腳本調用JSON數組不正確地接收:
Array ([data] => { pid=[Ljava.lang.Object;@1bfbb500} fields=[Ljava.lang.Object;@3ffbb500})
我希望這是與編碼或他相關的東西aders ...我已經嘗試過大多數標頭和contentType的組合,但無濟於事。
var headers = { "Accept":"json", "Content-Type":"application/json", };
建議任何人?
作爲一種解決方法,由於您可以訪問PHP代碼,而不是提供JSON,請提供HTML,並請求URL GET參數。 – Kriggs