2012-03-08 24 views
0

注意:請注意,由於我剛剛開始客戶端開發,因此這個問題可能很愚蠢。 我需要對通過JSONP檢索的動態鏈接進行XHR POST請求。但由於某些原因,它不起作用。基本上,POST url「youtube_url_upload」變得未定義。 如何將動態URL設置爲XHR POST參數?

 xhr.open("POST", youtube_url_upload); 
這裏是代碼片段:

 
    var get_youtube_service_url ="http://video.example.com/youtubeupload?jsoncallback=?"; 
    $.ajax({ 
      type: "GET", 
      url: get_youtube_service_url, 
      dataType: "jsonp", 
      cache : false, 
      success: function(data) { 

       // get youtube 
      // var y_url = data.url; 

      var token = data.token; 
      var youtube_url_upload = data.url + "?nexturl="+encodeURIComponent("http://selling.example.com/youtube.html"); 
      calltoken(token); 

      uploadFile(youtube_url_upload); 


      } 
      }); 

    var bytesUploaded = 0; 
     var bytesTotal = 0; 
...... 
 
function uploadFile(youtube_url_upload) { 

     var xhr = new XMLHttpRequest(youtube_url_upload);   
     xhr.upload.addEventListener("progress", uploadProgress, false); 
     xhr.addEventListener("load", uploadComplete, false); 
     xhr.addEventListener("error", uploadFailed, false); 
     xhr.addEventListener("abort", uploadCanceled, false); 
     xhr.open("POST", youtube_url_upload); 

     xhr.send(fd); 

     intervalTimer = setInterval(updateTransferSpeed, 500); 
     } 
..... 
+0

你確定你會得到正確的數據迴應?嘗試成功回調中的console.log(數據)並查看它顯示的內容。 – 2012-03-08 06:13:19

+0

因爲這樣的代碼對我來說很好。你是否試圖通過ajax將視頻上傳到youtube? – dhaval 2012-03-08 06:17:18

回答

0

成功回調得到一個字符串爲「數據」,不反對
它可能是一個JSON所以使用

$.parseJSON (data)