关于odoo跨域问题

js和odoo连接
1.下载jquery.xmlrpc.js和jquery-1.8.3.js
2.解决跨域问题
在\odoo\service\wsgi_server.py中修改
start_response(“200 OK”, [(‘Content-Type’,’text/xml’), (‘Content-Length’, str(len(response))),
(‘Access-Control-Allow-Origin’,’*’),
(‘Access-Control-Allow-Methods’,’POST, GET, OPTIONS’),
(‘Access-Control-Max-Age’,1000),
(‘Access-Control-Allow-Headers’,’origin, x-csrftoken, content-type, accept’)])
def wsgi_xmlrpc(environ, start_response):
“”” Two routes are available for XML-RPC

/xmlrpc/ route returns faultCode as strings. This is a historic
violation of the protocol kept for compatibility.

/xmlrpc/2/ is a new route that returns faultCode as int and is
therefore fully compliant.
“””
if environ[‘REQUEST_METHOD’] == “OPTIONS”:
response = werkzeug.wrappers.Response(‘OPTIONS METHOD DETECTED’)
response.headers[‘Access-Control-Allow-Origin’] = ‘*’
response.headers[‘Access-Control-Allow-Methods’] = ‘POST, GET, OPTIONS’
response.headers[‘Access-Control-Max-Age’] = 1000
# note that ‘*’ is not valid for Access-Control-Allow-Headers
response.headers[‘Access-Control-Allow-Headers’] = ‘origin, x-csrftoken, content-type, accept’

return response(environ, start_response)

if environ[‘REQUEST_METHOD’] == ‘POST’ and environ[‘PATH_INFO’].startswith(‘/xmlrpc/’):
length = int(environ[‘CONTENT_LENGTH’])
data = environ[‘wsgi.input’].read(length)

# Distinguish betweed the 2 faultCode modes
string_faultcode = True
if environ[‘PATH_INFO’].startswith(‘/xmlrpc/2/’):
service = environ[‘PATH_INFO’][len(‘/xmlrpc/2/’):]
string_faultcode = False
else:
service = environ[‘PATH_INFO’][len(‘/xmlrpc/’):]

params, method = xmlrpclib.loads(data)
return xmlrpc_return(start_response, service, method, params, string_faultcode)
3.修改完后重启odoo

4.在页面中引用步骤1中的js文件,并在