1
a有一個基於google endpoints API的簡單服務。所有的工作正常,但問題是API通過backbone.js從其他主機調用。所以我必須在服務器端允許「Access-Control-Allow-Origin:*」。Google Endpoints API自定義聽衆
但是在文檔或其他東西中找不到任何解決方案。 我試圖建立這樣的app.yaml中,如:
http_headers:
Access-Control-Allow-Origin: http://.*
,但這僅適用於static_dir而不是腳本工作
感謝anay的想法,並幫助
from google.appengine.ext import endpoints
from google.appengine.ext import ndb
from protorpc import messages
from protorpc import message_types
from protorpc import remote
class SpotModel (ndb.Model):
description = ndb.StringProperty(required=True)
latitude = ndb.FloatProperty()
longitude = ndb.FloatProperty()
class Spot (messages.Message):
description = messages.StringField(1, required=True)
lat = messages.FloatField(2)
lng = messages.FloatField(3)
id = messages.IntegerField(4)
class SpotList (messages.Message):
items = messages.MessageField(Spot,1, repeated=True)
@endpoints.api(name="spots", version='v1',
description="API for create, update and list spots")
class SpotAPI(remote.Service):
@endpoints.method(Spot,Spot,
name='spot.insert',
path='spot',
http_method='POST')
def insertSpot(self, request):
newSpot = SpotModel(description = request.description,latitude = request.lat,longitude = request.lng)
newSpot.put()
return pareSpotToMessage(newSpot)
app = endpoints.api_server([SpotAPI])
您應該簽出['endpoints-proto-datastore'](https://endpoints-proto-datastore.appspot.c om),它正是你的API所需要的,並且將你的代碼減少一半:) – bossylobster
你有什麼問題? CORS完全支持Google Cloud Endpoints? – bossylobster