如何从 safari 扩展中调用 python 函数
Posted
技术标签:
【中文标题】如何从 safari 扩展中调用 python 函数【英文标题】:How to call python function from safari extension 【发布时间】:2017-11-23 21:13:21 【问题描述】:我正在创建一个 safari 扩展程序,并且在后端我使用 python 来保存数据。但我无法调用 python 函数,它给了我这个错误:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
这是我的python函数网址:http://localhost:8000/polls/add
我正在使用 jquery/ajax 调用 python 函数
这是我的脚本代码:
var action_url ="localhost:8000/polls/add";
params = 'contact_name=abc&contact_email=abc@gmail.com&content=here is content';
$.ajax(
url: action_url,
type: 'GET',
beforeSend: function(xhr)
xhr.setRequestHeader('Access-Control-Allow-Origin', 'localhost');
,
xhrFields: withCredentials: true ,
crossDomain: true,
data: JSON.stringify(params),
error: function (e) alert('error = '+e) ,
success: function (data) alert(data);
);
【问题讨论】:
请编辑您的问题,而不是添加 cmets。 您好 GGG,感谢您的回复。好的,已编辑 【参考方案1】:您似乎遇到了CORS 问题。尝试从 Safari 中禁用它,check this out 可能会有所帮助。
【讨论】:
嗨,Vitalie Maldur,是的,我遇到了 CORS 问题,我查看了您的回复,但对我没有帮助。 您是否尝试在服务器的响应中设置Access-Control-Allow-Origin: *
?不是您的要求。
是的,我是这样设置的,这是我的 def def helloworld(): resp = make_response() resp.headers['Access-Control-Allow-Origin'] = '*' return resp getting同样的错误以上是关于如何从 safari 扩展中调用 python 函数的主要内容,如果未能解决你的问题,请参考以下文章
仅在满足某些条件时才调用 Safari Content Blocker 扩展?
C# 调用具有不同类型的相同扩展函数作为参数(可能是委托?)
带有 Safari 扩展的 Mac App Store 应用程序