小编luc*_*cas的帖子

如何在某些情况下禁用Django的csrf保护?

我正在尝试在Django中编写一个站点,其中API URL与面向用户的URL相同.但我在使用POST请求和CSRF保护的页面遇到问题.例如,如果我有一个page/foo/add,我希望能够以两种方式向它发送POST请求:

  1. 作为最终用户(使用会话cookie进行身份验证)提交表单.这需要CSRF保护.
  2. 作为API客户端(使用HTTP请求标头进行身份验证).如果启用CSRF保护,则会失败.

我找到了各种禁用CSRF的方法,例如@csrf_exempt,但是这些都禁用了整个视图.有没有办法在更细粒度的水平上启用/禁用它?或者我只是要从头开始实施自己的CSRF保护?

api django csrf-protection

32
推荐指数
3
解决办法
2万
查看次数

Javascript拖放:成功删除后删除拖动的元素

我在javascript中使用本机拖放 API.如何在成功删除后从DOM中删除拖动的元素?

  • 我已经尝试过监听drop事件,但这只会被触发的元素触发,并且没有引用被拖动的元素.
  • 我试过听过dragend元素,但这并没有让我知道drop是否成功.
  • 我正在尝试避免将要拖动的元素存储在全局变量中,因为如果在不同的选项卡或浏览器之间发生拖动,这将导致问题.

这是一个例子:http://jsfiddle.net/KNG6n/3/

可以拖入框中的字母列表.当一个字母的节点被放在盒子上时,我希望它从列表中删除(不影响包含相同字母的任何其他列表项)

javascript html5 drag-and-drop

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

缩放CSS中生成的内容

如何缩放添加的图像:在CSS之前或之后?

例如,我有一个包含书籍封面的页面:

<span class="book">
    <img src="http://ecx.images-amazon.com/images/I/41t7xMPK%2B6L.jpg" />
</span>
Run Code Online (Sandbox Code Playgroud)

我想使用CSS使它看起来更像一本书,而不仅仅是一本封面.我可以使用:之前添加第二张图片来做这件事,但由于所有书的大小各不相同,我需要能够缩放此图像以适应书籍封面.

我试过了

.book:before{
    content:url("/images/book.png");
    position:absolute;
    height:100%;
    width:100%;

}
Run Code Online (Sandbox Code Playgroud)

但这在缩放图像时不起作用.

css

7
推荐指数
2
解决办法
5992
查看次数

阻止Android关闭在后台播放音频的Progressive Web App

我写了一个渐进的网络应用程序,它使用Web Audio API播放音乐.常见的用户旅程是开始播放音乐,然后在仍然听音乐的同时更改为其他应用.这工作正常一段时间,直到android决定它需要更多的资源用于其他应用程序并关闭我的PWA没有警告.

有没有办法提示浏览器和操作系统,尽管不在前台,用户仍在使用特定的网络应用程序?当音乐暂停时,我很好地在后台整理它,但在用户还在听某事的时候却没有.

我感兴趣的主要浏览器是Chrome for Android(虽然平台不可知的东西是理想的).

android chrome-for-android progressive-web-apps web-audio-api

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

HTMLMediaElement的非线性卷

我用javascript和html5编写了自己的媒体播放器界面.目前我的音量滑块映射到浏览器的音量属性1:1.我非常想调整它来解释感知响度.

html5规范volume属性部分说:

... 0.0是沉默的,1.0是最响亮的设置,在响度增加之间的值.范围不必是线性的.

这似乎意味着浏览器应该使用的规模没有标准.我担心如果我在一个浏览器中调整感知响度,另一个浏览器可能已经在做这个导致过度修正.

有谁知道浏览器目前使用的音量大小以及这些是否可能在未来发生变化?

html5 volume html5-video html5-audio

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

在android浏览器中使用CSS的反射渐变

我有一些CSS用于显示元素的反射,该元素使用-webkit-gradient淡出:

.foo { -webkit-box-reflect: below 0 -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.5)), color-stop(0.7, transparent)); }
Run Code Online (Sandbox Code Playgroud)
  • 在支持-webkit-box-reflect的浏览器(例如chrome)上,这会显示元素的反射,该元素会按预期逐渐淡出.
  • 在根本不支持它的浏览器上,不显示反射.

但是,在Android的浏览器中,会显示反射,但不会淡出.

有没有办法让Android到:

  1. 淡出反射,或
  2. 根本不显示反射.

我知道我可以使用javascript来检测浏览器并相应地更改样式,但我更喜欢仅使用CSS的解决方案.

css reflection gradient android-browser

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

jQuery UI droppable:悬停时调整大小元素不起作用

我有一个jQuery UI droppable元素,当一个draggable悬停在它上面时我想变得更大.我已尝试使用hoverClass选项并绑定到drophover事件.

在视觉上,这两种方法都可以正常工作.但是,一旦draggable退出droppable的原始(较小)边界,jQuery UI将其解释为"dropout",尽管仍然在当前(较大)边界内.

例如,js:

$("#dropable").droppable({
    hoverClass: 'hovering'
}.bind('dropout', function () {console.log('dropout')});
Run Code Online (Sandbox Code Playgroud)

CSS:

#droppable { background: teal; height: 10px; }
#droppable.hovering { height: 200px; }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,当可拖动悬停在可放置的粪便上时,可放置的粪便在视觉上增加到200px.如果此时,拖动器向下移动了20px,我预计它仍将悬停在可放置的上方.相反,jQuery UI会触发dropout事件,而droppable会恢复为10px高.

任何人都知道如何让它以我期望的方式行事吗?

jsFiddle示例:http://jsfiddle.net/kWFb9/

jquery-ui jquery-ui-droppable

5
推荐指数
2
解决办法
3039
查看次数

如何处理网络错误,使它们不会出现在chrome开发者控制台中?

我在服务工作者中运行了一些代码,该代码刷新了当前缓存的资源:

const RESOURCE_CACHE = 'resources-v1';
caches.open(RESOURCE_CACHE).then(function addUrlsToCache(cache) {
    return cache.addAll([
        '/resources/style.css',
        '/resources/fonts/led',
        '/resources/script.js',
        '/img/roundel-tube.png',
        '/img/roundel-dlr.png',
        '/img/roundel-overground.png',
    ]);
}).catch(function (error) {
    console.error("Failed to cache resources:", error.message);
})
Run Code Online (Sandbox Code Playgroud)

为了测试错误处理,我禁用了开发服务器,然后再次运行此客户端代码。在这种情况下,我希望看到一条错误消息:Failed to cache resources: Failed to fetch。但是我实际上看到了关于这一段代码的7条错误消息:

开发人员控制台中的7个错误

这让我感到困惑,因为我认为他们在这里使用诺言的方式会处理其他6个,因此它们永远不会冒充控制台。我需要做些什么以使控制台永远不会显示我在代码中处理的网络错误?

javascript google-chrome-devtools es6-promise service-worker progressive-web-apps

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