2015-09-23 51 views
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() 

回答

0

你在使用你的服务器?

你应该看看有:Python - Enable access control on simple http server

+0

对于我使用 “蟒蛇dev_appserver.py主机= abhijeetpatil --port = 8080 RegressionAPI /” 而对于应用程序服务器 “蟒蛇-m SimpleHTTPServer 8081” –

+0

然后,你应该尝试按照我给你的webapp的链接上的答案.. 我不想做任何宣传,但cherrypy(例如)很容易处理CORS和各种标题。 – Smeiliz

相关问题