小编Cha*_*haz的帖子

字体在Web客户端cors中被阻止

虽然我在当地工作一切都很完美,现在我上传到托管,字体被我从未听说过的东西(CORS)阻止.字体(和css,js等)位于子域中,因为URL由索引解析(因此路径在域中不起作用).css/js工作正常.

这是Web控制台(firefox)中的输出:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Oxygen-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Oxygen-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Oxygen-Regular.ttf styles.css:10:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Montserrat-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Montserrat-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not …
Run Code Online (Sandbox Code Playgroud)

cors

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

mysqli 没有将字符集设置为 utf8mb4

发现问题

问题似乎$mysqli->set_charset()是不接受 `utf8mb4' 作为有效编码(正如我在第一次更新中“推测”的那样)。MySQL 版本是 5.5.41,PHP 版本是 5.4.41(没问题)。


抱歉标题,我一直在搜索/阅读问题是什么/在哪里,我已经对此感到困惑......

我最近开始在 mysql 中使用 utf8mb4。我使用 utf8mb4 作为字符集,使用 utf8mb4_unicode_ci 作为所有表/列的排序规则。

所以我首先改变了:

$mysqli->set_charset('utf8');
Run Code Online (Sandbox Code Playgroud)

$mysqli->set_charset('utf8mb4');
Run Code Online (Sandbox Code Playgroud)

确保我的 php 文件是 utf8(我使用的是 Visual Studio Code,因此默认情况下这些文件是以 UTF-8 创建的),并且 php/html 标头设置为 utf8:

索引.php

header('Content-type: Text/HTML; Charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)

main.php(包含在 index.php 的末尾)

<meta http-equiv="Content-Type" content="Text/HTML" />
<meta charset="UTF-8" />
Run Code Online (Sandbox Code Playgroud)

问题是对于某些表,我必须手动插入数据,并且这些数据按原样存储:带有特殊字符、重音符号、ñ 等......当我在我的网站上显示这些数据时,我可以看到这些字符?替换了特殊/重音字符。

所以我的问题是:有什么方法可以在 mysql 中按原样存储数据(不替换/转换特殊/重音字符)并能够正常显示(按原样)?

如果我恢复到$mysqli->set_charset('utf8');数据显示正常......所以这让我想知道存储utf-8字符应该没有问题,并且某处存在一些编码问题......

我正在使用 sqlyog 社区(带酒),我在某处读到,当您更改某些 db/table 配置时,gui 有时无法正常工作,唯一的方法是旧方法(自己运行查询),但我没有试过这个了。我运行查询来设置所有表/列的字符集和排序规则。

你怎么认为?

更新

我开始认为 mysqli 不接受 utf8mb4 作为有效的字符编码,而是使用来自 php 而不是来自 mysql 的 utf8 ......我还认为 …

php mysql encoding utf-8 utf8mb4

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

css倾斜元素并获得内部圆形边框顶部

我正在尝试使用css复制图形设计,但我没有响应,我可以实现静态形式但有微小缺陷(由于将两个元素组合在一起).

这是图形设计:

在此输入图像描述

我更倾向于倾斜,如:skew(-40deg).但这个想法是有一个内部的圆形边框,就像在图像中一样包裹着这个按键.

html很简单:

<header>
  <nav></nav>
</header>
Run Code Online (Sandbox Code Playgroud)

css:

body > header > nav {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100vw;
    height: 90px;
    padding: 10px 0;
    text-align: center;
    z-index: 1
}
body > header > nav::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 80vw; height: 100%;
    background-color: rgb(147, 147, 147);
    border-bottom-right-radius: 15px;
    transform: skew(-40deg);
    transform-origin: 100% 0%;
}
body > header > nav::after {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 28.7%; …
Run Code Online (Sandbox Code Playgroud)

css css3 css-shapes

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

在发送多个时使用 dropzone.js 发送 formData

dropzone.js 文档/wiki 没有说明如何发送表单字段。

我刚刚阅读了FormData 对象,它说明了如何使用表单字段填充对象。问题是用整个表单填充对象不会发送数据,但是如果我将表单字段一一附加,它们将被发送......

这有效:

formData.append('name', jQuery('#name').val());
Run Code Online (Sandbox Code Playgroud)

这不会:

var myForm = document.querySelector('form');
formData = new FormData(myForm);
Run Code Online (Sandbox Code Playgroud)

第一个示例将发送该#name字段,但第二个示例不会发送任何内容(仅发送文件)。

我怎样才能触发它?我想让 dropzone 沿着文件发送整个表单(都在同一个请求中)。

init: function() {
    var myDropzone = this,
        submitButton = document.querySelector("[type=submit]");

    submitButton.addEventListener('click', function(e) {
        e.preventDefault();
        e.stopPropagation();
        myDropzone.processQueue();
    });

    myDropzone.on('sendingmultiple', function(data, xhr, formData) {
        // this will get sent
        formData.append('name', jQuery('#name').val());
        // this won't
        var myForm = document.querySelector('form');
        formData = new FormData(myForm);
    });
    myDropzone.on('successmultiple', function(files, response) {
        //window.location.replace("/home");
    });
    myDropzone.on('errormultiple', function(files, response) {
        alert(response);
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript dropzone.js

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

$(this).is(':checkbox')阻止检查

我有一个on click函数绑定到三个元素,第一个只触发它检查两个单选按钮并声明一个带有checked值的变量,第二个是复选框并声明变量值为那些,第三个元素是分页链接到声明并分配页面以将其发送到php.

我尝试添加,$(this).prop('checked', true);但单击时不检查复选框(我不知道是什么阻止它们):

$('body').on('click', '.click, :checkbox, .pag_link', function()
{
    // search, filters and change page buttons

    if ($('#res_prop').is(':checked')) {
        var use = $('#res_prop').val(); // 1
    }
    else if ($('#com_prop').is(':checked')) {
        var use = $('#com_prop').val(); // 0
    }
    else {
        $('p.error').show();
        die();
    }

    if ($(this).is(':checkbox')) {
        // not needed or it won't uncheck -> $(this).prop('checked', true);
        if ($(this).attr('class') == 'filter1' || $('.filter1').is(':checked')) {
            var type = $(this).val(); // maybe should be an array
        } else var type = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

标签 统计

javascript ×2

cors ×1

css ×1

css-shapes ×1

css3 ×1

dropzone.js ×1

encoding ×1

jquery ×1

mysql ×1

php ×1

utf-8 ×1

utf8mb4 ×1