0
我已经创建了一个Python的RESTful API的Python的休息API请求的资源,但同时访问该API我收到错误为:否“访问控制允许来源”标头出现在
“XMLHttpRequest无法加载 http://localhost:8080/filter/Dev=46&Beta=45&stable=44。否 'Access-Control-Allow-Origin'标题存在于请求的 资源中。因此,'http://localhost:8081'不允许 访问,响应的HTTP状态码为405。
我的应用程序在端口8081上,而API在端口8080上。我需要在API中添加Access-Control-Allow-Origin
吗?如果是,那么如何?
这里是我的API源代码:
import sys
from issue_tracker.Issue2 import Issue2
from issue_tracker.IssueTrackerManager2 import IssueTrackerManager
from array import array
import webbrowser
import webapp2
import StringIO
import datetime
import web
urls = (
'/filter/(.*)', 'RegressionUtil'
)
application = web.application(urls, globals())
class RegressionUtil():
def GET(self, filter):
url = filter.split('&')
Dev = url[0].split('=')[1]
Beta = url[1].split('=')[1]
Stable = url[2].split('=')[1]
my_list = []
my_list.append(Dev)
my_list.append(Beta)
my_list.append(Stable)
html_report=''
for i in range(0, len(my_list)):
global _HEAD_COUNT
_HEAD_COUNT += 1
data_list = []
username = '' # Oauth username.
password = '' #client secert
project = ''
version = str(my_list[i])
iQuery ='status:Fixed '
issuelist=(IssueTrackerManager
(username, password, project).getIssues(iQuery,'all',maxrow))
for i in issuelist:
bug_data = {}
Issue2 = i
bug_data['version'] = version
bug_data['id'] = Issue2.id
bug_data['summary'] = Issue2.summary
bug_data['owner'] = Issue2.owner
bug_data['status'] = Issue2.status
bug_data['created'] = Issue2.created
bug_data['updated'] = Issue2.updated
labels = self._ParseLabelData(Issue2.labels)
bug_data['labels'] = labels
bug_data['stars'] = Issue2.stars
data_list.append(bug_data)
print('Started executing')
html_report = html_report+self.PrintResults(data_list,version)
return html_report
app = application.wsgifunc()
对于我使用 “蟒蛇dev_appserver.py主机= abhijeetpatil --port = 8080 RegressionAPI /” 而对于应用程序服务器 “蟒蛇-m SimpleHTTPServer 8081” –
然后,你应该尝试按照我给你的webapp的链接上的答案.. 我不想做任何宣传,但cherrypy(例如)很容易处理CORS和各种标题。 – Smeiliz