[英]How do I do POST/GET request from AJAX to Odoo 10 custom module controller? (Blocked by CORS policy)
我正在使用帶有自定義模塊的 Odoo 10,並創建了這個簡單的 controller。 當我從瀏覽器訪問http://127.0.0.1:8069/cmodule/cmodule
時,它工作正常。 它顯示返回字符串。
我嘗試了 GET 和 POST,但我得到了相同的錯誤結果。 關於 CORS 策略阻止請求或其他內容。 我的谷歌權力還沒有真正找到解決這個問題的任何方法或任何替代方案。
但是當我嘗試通過 AJAX 從我用 PHP/javascript 編寫的其他東西中請求時。 我在 javascript 上收到此錯誤:
Access to XMLHttpRequest at ' http://127.0.0.1:8069/cmodule/cmodule/ ' from origin ' http://127.0.0.1 ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is出現在請求的資源上。
來自odoo的這個錯誤:
2020-04-30 08:18:13,401 23156 信息? werkzeug:127.0.0.1 - - [30/Apr/2020 08:18:13]“GET /cmodule/cmodule/HTTP/1.1”404 -
這是來自我的 Odoo-10 自定義模塊 controller 的簡單代碼:
# -*- coding: utf-8 -*-
from odoo import http
class Cmodule(http.Controller):
@http.route('/cmodule/cmodule/', auth='public', cors='*')
# I also tried here auth='none' and method='POST' and method='GET'
def index(self, **kw):
datas = http.request.env['product.product'].sudo().search(
[('product_group', '=', 'assort')], limit=50)
dstr = ','.join(datas )
# {'ret_val': dstr }
# I return {'ret_val': dstr } when doing POST request from AJAX.
return dstr
這是我的 AJAX 請求中的代碼:
$.ajax({
type: "GET",
// type: "POST",
url: "http://127.0.0.1:8069/cmodule/cmodule/",
// data: { data: 'HELLO' },
success: function(response){
console.log(response);
}
});
當您嘗試不同的事情時,請嘗試簡單的身份驗證
import odoo.addons.web.controllers.main as main
class Home(main.Home):
@http.route('/web/session/authenticate', type='json', auth="none" ,cors='*')
def authenticate(self, db, login, password, base_location=None):
request.session.authenticate(db, login, password)
return request.env['ir.http'].session_info()
從 IOS 訪問它時我遇到了同樣的錯誤,但與 postman 一起工作正常,這段代碼運行良好,你在這段代碼中做了所有事情,但仍然
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.