当我向某个服务器发送请求时,将发出303响应,然后是请求的响应以及200状态代码.有趣的是,我只在开发人员控制台的网络视图中看到这一点.检查我的$ .ajax()请求的状态代码和响应时,将会有第二个请求的响应,以及200个http状态代码.
问题是似乎第二个请求被缓存(虽然200状态代码),我真的需要它是不可缓存的.因此,我真的想介入使用http 303状态代码进行的转发过程.我希望我的jquery函数检查状态代码,然后发送带有显式头的get请求,告诉服务器不要缓存响应.
好吧,我只是不知道如何做到这一点,因为(如上所述)jQuery.ajax方法将响应转发请求的响应和状态代码(200).
你能帮助我吗?
编辑
10.3.4 303见其他
可以在不同的URI下找到对请求的响应,并且应该使用该资源上的GET方法检索.此方法主要用于允许输出POST激活的脚本以将用户代理重定向到选定的资源.新URI不是最初请求的资源的替代引用.303响应绝不能被缓存,但对第二个(重定向)请求的响应可能是可缓存的.
也许我需要以某种方式阻止用户代理重定向自己,所以我可以做重定向?
或者有没有办法简单地告诉服务器/浏览器不要缓存来自客户端的第二个请求?或者阻止它重定向我的请求?或者至少在重定向之前修改第二个请求?
我目前遇到的问题是我遇到了一个我从未见过的异常,这就是为什么我不知道如何处理它.
我想根据给定的参数创建一个文件,但它不起作用.
public static Path createFile(String destDir, String fileName) throws IOException {
FileAccess.createDirectory( destDir);
Path xpath = new Path( destDir + Path.SEPARATOR + fileName);
if (! xpath.toFile().exists()) {
xpath.toFile().createNewFile();
if(FileAccess.TRACE_FILE)Trace.println1("<<< createFile " + xpath.toString() );
}
return xpath;
}
public static void createDirectory(String destDir) {
Path dirpath = new Path(destDir);
if (! dirpath.toFile().exists()) {
dirpath.toFile().mkdir();
if(TRACE_FILE)Trace.println1("<<< mkdir " + dirpath.toString() );
}
}
Run Code Online (Sandbox Code Playgroud)
每次运行我的应用程序时,都会发生以下异常:
java.io.IOException: The system cannot find the path specified
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
[...]
Run Code Online (Sandbox Code Playgroud)
我怎么摆脱它?(我使用的是Win7 …
在我当前的视图中,打开了一个键盘,其中包含数字 0 到 9、删除键和回车键。我添加了一个onKeyDown和 一个onKeyUp事件。按下时两者都应将键码记录到调试控制台。
@Override
public boolean onKeyDown(int pKeyCode, KeyEvent pKeyEvent) {
Log.d("KEYDOWN", pKeyCode+"");
return true; // also tried false
}
@Override
public boolean onKeyUp(int pKeyCode, KeyEvent pKeyEvent) {
Log.d("KEYUP", pKeyCode+"");
return true;
}
Run Code Online (Sandbox Code Playgroud)
我按下键盘上的每个键,结果如下:
D/KEYUP: 8
D/KEYUP: 9
D/KEYUP: 10
D/KEYUP: 11
D/KEYUP: 12
D/KEYUP: 13
D/KEYUP: 14
D/KEYUP: 15
D/KEYUP: 16
D/KEYDOWN: 67
D/KEYUP: 67
D/KEYUP: 7
D/KEYUP: 66
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么 0-9 和 Enter 永远不会触发 keydown 事件吗?我真的需要它在按下 0-9 时触发。
编辑:我添加了一个解决方案,通过将这两个函数替换为
dispatchKeyEvent. 但这并不能解释为什么 …
简而言之:
我想用JavaScript绘制线图而不使用(开源)库.我所有的工作都是JavaScript和jQuery(无插件!).
我该怎么办呢?
我必须重构使用Eclipse RCP创建的Java程序.我的前任通过几次调用向我要编写单元测试的类调用ViewPart实现.ViewPart是为了异常处理目的而移交的.每次发生错误时,错误消息都将写入ViewPart的StatusLineManager.
我现在要做的是改变这个异常处理过程,因为当我想进行单元测试时,它会给我带来很多问题.
有没有办法将这些异常传递给ViewPart而不将其交给多个方法调用?
我最初的想法是创建某种ExceptionMessenger类,每次发生异常时都会对其进行初始化.但我找不到一种方法来访问ViewPart.
编辑 代码示例:
class A {
void func() {
B.funcB(arg, arg1, arg2, ViewPart view):
}
}
class B {
void funcB(arg, arg1, arg2, ViewPart view) {
C.funcC(arg, arg1, ViewPart view);
}
}
class C {
void funcC(arg, arg1, ViewPart view) {
try{
doSomeThing():
catch(Exception e) {
doSomeErrorMessages(e, view);
}
}
void doSomeErrorMessages(e, ViewPart view) {
SomeOtherClass.writeToStatusLine( StatusCategory.Processing, e.getMessage(), view);
}
}
class SomeOtherClass {
void writeToStatusLine(final StatusCategory category, final String message, final …Run Code Online (Sandbox Code Playgroud) 我的应用程序旨在收集数据。但它只需要在键盘可见时收集数据。仅在用户打字时收集数据是不够的,所以我肯定需要知道键盘是否可见。
我知道,类似的问题之前已经发布过(How to check Visibility of software Keyboard in Android?), 但最后一个获得大量赞成票的答案是从2012 年开始的,我想从那时起 Android 发生了很多事情。
那么,我可以检测键盘是否打开/可见吗?
android ×2
java ×2
javascript ×2
jquery ×2
ajax ×1
architecture ×1
caching ×1
eclipse-rcp ×1
exception ×1
file-io ×1
graph ×1
graphics ×1
key-events ×1
windows ×1