javascript
  • jquery
  • ajax
  • cors
  • 2012-10-08 104 views 0 likes 
    0

    我想從我的Jquery移動應用程序(在Amazon S3上託管)發出一個http POST請求到「http://paraimpu.crs4.it/data/new」以將數據插入到我的傳感器上Paraimpu網站。這是我提出要求:Paraimpu HTTP POST請求

     data = "Test"; 
         valueToSend = '{"token":"c9d1cee6-da40-4e97-afc8-209045786b04","content-type":"application/json","data":' + data + '}'; 
         $.ajax({ 
          url: "http://paraimpu.crs4.it/data/new", 
          type: "POST", 
          data: valueToSend, 
          dataType: "json", 
          crossDomain: true, 
          contentType:"application/json", 
          success: function(){ 
          alert('Success'); 
         } 
         }); 
    

    我不斷收到

    的XMLHttpRequest無法加載http://paraimpu.crs4.it/data/new。來源 「http://webappz.s3-website-us-east-1.amazonaws.com」不允許通過 訪問控制允許來源。

    我知道這是因爲跨域的政策,但我怎麼能解決這個問題?在paraimpu頁面上的說明是相當含糊,只是說:

    推新的傳感器的數據做一個HTTP POST到:

    http://paraimpu.crs4.it/data/new

    與內容,如:{ 「令牌」:「c9d1cee6- da40-4e97-afc8-209045786b04" , 「內容類型」: 「文本/無格式」, 「數據」:RAW DATA}

    回答

    0
    data = "Test"; 
    valueToSend = '{"token":"c9d1cee6-da40-4e97-afc8-209045786b04","content-type":"application/json","data":' + data + '}'; 
        $.ajax({ 
         url: "http://paraimpu.crs4.it/data/new", 
         type: "POST", 
         data: valueToSend, 
         dataType: "jsonp", //set datatype to jsonp 
         crossDomain: true, 
         jsonp: false, 
         contentType:"application/json", 
         success: function(){ 
          alert('Success'); 
         } 
        });​ 
    

    這些都是您丟失的零件:

    dataType: "jsonp":您希望從服務器返回的數據類型。 「jsonp」,使用JSONP加載JSON塊。添加額外的「?callback =?」到您的URL的末尾來指定回調。除非緩存選項設置爲true,否則通過向URL追加查詢字符串參數「_ = [TIMESTAMP]」來禁用緩存。

    jsonp: false:覆蓋jsonp請求中的回調函數名稱。這個值將被用來代替'callback =?'中的'回調'。部分查詢字符串在url中。所以{jsonp:'onJSONPLoad'}會導致'onJSONPLoad =?'傳遞給服務器。從jQuery 1.5開始,將jsonp選項設置爲false會阻止jQuery將「?callback」字符串添加到URL或嘗試使用「=?」。進行轉化。在這種情況下,您還應該明確設置jsonpCallback設置。例如,{JSONP:假的,jsonpCallback: 「callbackName」}

    更多關於此這裏:jQuery.ajax()

    +0

    謝謝,但似乎並沒有工作。使用JSONP會自動將請求轉換爲GET,並收到'400 Bad Request'作爲響應 – tabiodun

    相關問題