我花了數小時來解決此問題......但無法獲得任何教程或示例。試圖實施一些東西,但面臨可怕的錯誤。在Twitter上使用javascript共享base64圖像
我正在處理客戶端幻燈片,並且似乎REST中的「POST status/update_with_media」Twitter的Api是特別設計用於共享圖像數據url,但最初,Twitter文檔非常差,並且沒有示例代碼。我甚至不知道如何在ajax請求中提供user_secret,user_token,consumer_key和consumer_secret。這就是我所做的。
var fd = new FormData();
fd.append("oauth_consumer_key", "knC68njKLjXrRljSxhE3uywsi");
fd.append("status", "");
fd.append("media[]", base64_string);
$.ajax({
url:"https://api.twitter.com/1.1/statuses/update_with_media.json",
type:"POST",
data:fd,
processData:false,
contentType: "multipart/form-data",
cache:false,
success:function(data){
alert('Post was published.');
},
error:function(shr,status,data){
alert('Post was not published.');
},
complete:function(){
}
});
我知道這是一個糟糕的嘗試,但那是我所能做的。這給出了以下錯誤。
XMLHttpRequest cannot load https://api.twitter.com/1.1/statuses/update_with_media.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.0.101' is therefore not allowed access.
我在本地php服務器上運行這個。任何例子或教程這將不勝感激。
謝謝。
謝謝,所以你的意思是沒有辦法從客戶端執行Twitter圖像共享,沒有服務器的幫助? – filipvkovic
如果你需要做一個POST,那麼設置至少一個簡單的代理是最好的選擇。如果你可以用GET來完成,那麼JSONP可能是一個選項。查看[corsproxy](http://www.corsproxy.com/)和[apitools](http://www.apitools.com)以獲取使用外部代理設置CORS的簡單解決方案。我也是[Apirise](http://www.apirise.com)的創始人,它將提供類似的功能。 – fxenik