2016-02-05 55 views
0

我送一個AJAX請求上傳個人資料照片,我的谷歌應用程序引擎實例沒有「訪問控制允許來源」標頭存在於由CloudStorageTools :: createUploadUrl

根據https://cloud.google.com/appengine/docs/php/googlestorage/user_upload#createuploadurl_options

創建的URL

我需要創建一個URL,我需要發送圖像。

$('.image-form').change(function() { 
    var data = new FormData(); 
    data.append('uploaded_files', $('.image-form').prop('files')[0]); 
    $.ajax({ 
    type: "GET", 
    url: "https://example.appspot.com/v1/upload/url", 
    success: function(response){ 
     var url = response.url; 
     $.ajax({ 
      type: "POST", 
      url: url, 
      processData: false, 
      contentType: false, 
      data: data, 
      success: function(response){ 
       console.log(response); 
      } 
     }); 
    } 
    }); 

我得到的錯誤

否「訪問控制允許來源」標頭出現在所請求的資源。因此Origin'local.app'不被允許訪問。響應有HTTP狀態代碼503

我已經設置在雲存儲的CORS這裏 https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket

給予任何形式的幫助將真正的讚賞。

回答

0

這是java (對不起)我的Kuoll remote debugger的片段適用於網絡apps。

package com.kuoll.server.filters; 

import javax.servlet.*; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 

public class CrossOriginFilter implements Filter { 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     HttpServletResponse resp = (HttpServletResponse) response; 

     resp.addHeader("Access-Control-Allow-Origin", "*"); 
     resp.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); 
     resp.setHeader("Access-Control-Allow-Headers", "origin, content-type, accept"); 

     chain.doFilter(request, response); 
    } 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { 
    } 

    @Override 
    public void destroy() { 
    } 

} 

替換resp.addHeader("Access-Control-Allow-Origin", "*");*你的原產地(如果需要)。

的web.xml

<filter-mapping> 
    <filter-name>CrossOriginFilter</filter-name> 
    <url-pattern>/api/*</url-pattern> 
</filter-mapping> 
+1

嗨!所以我在應用程序代碼中啓用了CORS。生成的URL不會打我的應用程序,並在此之前給我這個錯誤。 –

+0

您是否通過調用blobstoreService.createUploadUrl()創建了上傳url?這可能是缺少標題的原因。 –

相關問題