相关疑难解决方法(0)

JQuery $ .post跨域和凭据

我编写了一个使用$.postJQuery调用大量调用的Web应用程序.现在我想发送withCredentials: true它以保持会话活着,看起来像这样$.ajax(并且也像这样):

$.ajax({
            type: 'post',
            url: 'http://example.com/server/api.php',
            crossDomain: true,
            dataType: "json",
            xhrFields: {
                withCredentials: true
            },
            data: {
                username : 'test',
                password : 'test'
            },
            success: function (d) {
                $('body').html(d.status);
            }
        });
Run Code Online (Sandbox Code Playgroud)

这是因为我现在想将PHP文件上传到我的服务器并使用Cordova导出客户端.(withCredentials: true仅包括在我的本地主机服务器上进行测试)我可以将其打包到$.post呼叫中还是需要更换所有呼叫?(我会写一个类似于$ .post的新函数)

ajax jquery post xmlhttprequest

12
推荐指数
1
解决办法
3万
查看次数

PHP和AJAX中的cookie问题

我在脚本上遇到一些问题,我使用PHP和jquery来创建登录系统.

首先,我有PHP页面包含登录表单.当用户点击提交时,我使用jquery将数据发送到服务器

$.post('server_login.php', {username:username.val(), password:password.val()}, function(data){
    alert(data);
}); 
Run Code Online (Sandbox Code Playgroud)

在server_login.php中我有做登录用户的功能.

if($_POST['username']=='username' && $_POST['password']=='1234'){
    $expire = time() + 60*60*24*30; //1 month expired.
    setcookie("user_id", $_POST['username'], $expire);
    echo true;
}
Run Code Online (Sandbox Code Playgroud)

和jquery在我的登录页面上提醒"1".

问题是,当我刷新我的网站并收回cookie时,它没有告诉我.

print_r($_COOKIE);
Run Code Online (Sandbox Code Playgroud)

哪里不对了?

php cookies ajax jquery

11
推荐指数
1
解决办法
1万
查看次数

有没有办法动态更新Web API CORS中允许的源列表

我正在尝试为我的.Net Web API应用程序中的某些域启用CORS,并且能够通过此代码在Application Start上执行此操作.

public static void Register(HttpConfiguration config)
{
    //below comma separated string is built from database
    var domains = "http://www.myfirstdomain.com,http://www.myseconddomain.co.uk .... about 130 domains more..";
    config.EnableCors(new EnableCorsAttribute(domains, "*", "*"));
Run Code Online (Sandbox Code Playgroud)

但是,如果在应用程序处于活动状态时添加了新域,则在回收应用程序池并再次构建此列表之前,将不允许这些域发布.

有没有什么办法可以在我的应用程序生命周期内更新此列表?我知道我可以定期回收应用程序池,但这会导致某些请求出现延迟,理想情况下我可以不这样做.

我知道我可以在控制器方法上启用它,即..

[EnableCors("http://domain1.com,http://domain2.com", "*", "*")]
public HttpResponseMessage PostAsync([FromBody] MyRequest myRequest)
{
Run Code Online (Sandbox Code Playgroud)

但是,逗号分隔参数必须再次声明为常量,因此不能是动态的.

我是否遗漏了一些明显的显而易见的事情,或者是否有人会想到这样做的好方法?

编辑

这是我尝试编写自己的自定义EnableCors属性.

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)]
public class EnableCorsByDomainAttribute : Attribute, ICorsPolicyProvider
{
    private readonly CorsPolicy _policy;

    public EnableCorsByDomainAttribute()
    {
        _policy = new CorsPolicy
        {
            AllowAnyMethod = true,
            AllowAnyHeader = true
        };

        var …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax http cors asp.net-web-api

8
推荐指数
1
解决办法
5464
查看次数

浏览器不保留响应头的cookie

我正在尝试做一些简单易行的事情:设置一个cookie!但浏览器(Chrome和Safari测试)只是忽略了它们.所以响应头看起来像:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Encoding:gzip
Content-Type:application/json; charset=utf-8
Date:Wed, 19 Jul 2017 04:51:51 GMT
Server:nginx
Set-Cookie:UserAuth=<some jwt>; Path=/; Domain=10.10.1.110; Expires=Wed, 19 Jul 2017 12:51:51 GMT; HttpOnly; Secure
Transfer-Encoding:chunked
Vary:Origin
Run Code Online (Sandbox Code Playgroud)

请求确实包括withCredentials=true.但Chrome中的Cookie部分是空的.我已经尝试完全删除域,删除路径,我能想到的每个配置,但浏览器只是不会播放球.

我错过了什么?

browser cookies response

5
推荐指数
1
解决办法
1450
查看次数

如何使用 django-cors-headers 从数据库动态填充 CORS_ORIGIN_WHITELIST?

我正在编写一个 Django 应用程序,其中有一个名为 的模型Website,其中包含人员网站。我只允许在我的数据库中拥有网站的人使用我的 Django REST API。我正在使用该django-cors-headers包将人们的域列入白名单: https: //github.com/adamchainz/django-cors-headers

CORS_ORIGIN_WHITELISTsettings.py 中的变量允许我将域列入白名单,如https://github.com/adamchainz/django-cors-headers#cors_origin_whitelist所示

问题是我必须查询我的模型以获取网站域,将它们附加到列表中,然后将该列表放入CORS_ORIGIN_WHITELIST. 但我无法在 settings.py 中执行此操作,因为模型是在应用程序启动后加载的,而 settings.py 是启动应用程序的模型。

有谁知道解决办法吗?任何建议将不胜感激。提前致谢。

python django

1
推荐指数
1
解决办法
2014
查看次数