2015-03-19 56 views
0

請幫忙。 我正在使用ajax對遠程服務器進行同步調用。錯誤與異步調用相同。無法提取輸出。返回碼206.缺少值。

function create_vswitch(endpoint,data){ 
     var response=send_recieve(endpoint,data); 
     console.log(response.params.id); 
     return response.params.id; 
} 
function configure_server_vswitch(endpoint,data){ 
     var response=send_recieve(endpoint,data); 
     console.log(JSON.stringify(response)); 


function send_recieve(endpoint,data){ 
     var url=http://10.77.94.243/830a341f-5249-4704-bd49-a732063a7dcb + endpoint 
     console.log(url); 
     var response=""; 
     $.ajax({ 
      url: url, 
      type: "POST", 
      dataType:"json", 
      data: data, 
      contentType:"application/json", 
      success:function(){console.log("success")}, 
      error:function(){console.log("ERROR")}, 
      async:false 
      }).then(function(response){ 
        resp=response; 
      }); 
      return resp 

$("#create").click(function() { 
    var COMPUTE_VSWITCH_UUID=create_vswitch("/qvbn-switch-agent/compute.vswitch",{"name":"compute_vswitch_test102"}); 
    console.log(COMPUTE_VSWITCH_UUID); 
    //var compute_server_uuid= 
    configure_server_vswitch("/qvbn-switch-agent/compute.server",{"configuration":{"tid":"compute.vswitch","id":COMPUTE_VSWITCH_UUID}}); 
    }); 

這我得到控制檯輸出爲:

http://10.77.94.243:8280/830a341f-5249-4704-bd49-a732063a7dcb/qvbn-switch-agent/compute.vswitch 
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. 
Done 
739d4940-b12d-4a6c-8ba6-fad7d30ce78f 
739d4940-b12d-4a6c-8ba6-fad7d30ce78f 
http://10.77.94.243:8280/830a341f-5249-4704-bd49-a732063a7dcb/qvbn-switch-agent/compute.server 
Done 
{"code":206,"cid":"qvbb","reason":"missing values for attributes configuration","params":null,"result":false,"error":true} 

正如你可以看到最後O/T,它說,「爲屬性的配置缺失值」。我無法理解此代碼的問題。有人可以告訴我這段代碼有什麼問題嗎?

回答

1

嘗試用data: JSON.stringify(data),代替data: data,

+0

非常感謝。這工作。但在第一種情況下它是如何工作的。 – 2015-03-19 07:46:04

+0

您將「contentType」中的數據作爲「application/json」傳遞,但是您發送的是一個簡單的JS對象,這就是它永遠不會通過的原因。我想在第一種情況下,數據被JSON.stringified以某種方式。 – 2015-03-19 07:55:00

+0

在下一步我在做 var networking_vswitch_uuid = networking_vswitch(「/」+ COMPUTE_VSWITCH_UUID +「/networking.vswitch",{"name":"networking_vswitch_test104」}); POST http://10.77.94.243:8280/qvbn/830a341f-5249-4704-bd49-a732063a7dcb/0000fa63-e6e1-4a6e-94a5-2c79f6ea43a5/networking.vswitch 404(Not Found) – 2015-03-19 08:46:51