<form id="customerForm">
<label>
First Name:
<input id="firstName" required />
</label>
<label>
Social Security Number:
<input id="ssn" required pattern="^d{3}-d{2}-d{4}$"
title="Expected pattern is ###-##-####" />
</label>
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
当我在Chrome中尝试该文档时,它会接受条件并按预期显示错误.
但是当我在Safari中尝试该文档时,它没有显示任何错误.
我正在尝试在我的 Spring Boot 应用程序中启用 CORS,但它根本不起作用。
我试过了
@CrossOrigin 注解我不知道此时如何解决这个问题,也不知道 CORS 不起作用的问题是什么。
我的代码
控制器
@RestController
public class DbController {
@Autowired
private IDAO conn;
@CrossOrigin
@GetMapping("/foo")
public List<Foo> getFoo() {
return conn.getFooFromDao();
}
}
Run Code Online (Sandbox Code Playgroud)
道
@Repository
public class DaoImpl implements IDAO {
@Autowired
private JdbcTemplate temp;
public List<Foo> getFooFromDao() {
List<Foo> data = new ArrayList<>();
String sql = "SELECT fooName FROM BigFoo ORDER BY fooName ASC;";
data.addAll(temp.query(sql, new BeanPropertyRowMapper(BigFoo.class)));
return data;
}
} …Run Code Online (Sandbox Code Playgroud) 我一直在寻找除Sizzle之外的CSS选择器功能,我遇到过这个功能.
function SparkEn(xpath,root) {
xpath = xpath
.replace(/((^|\|)\s*)([^/|\s]+)/g,'$2.//$3')
.replace(/\.([\w-]+)(?!([^\]]*]))/g, '[@class="$1" or @class$=" $1" or @class^="$1 " or @class~=" $1 "]')
.replace(/#([\w-]+)/g, '[@id="$1"]')
.replace(/\/\[/g,'/*[');
str = '(@\\w+|"[^"]*"|\'[^\']*\')';
xpath = xpath
.replace(new RegExp(str+'\\s*~=\\s*'+str,'g'), 'contains($1,$2)')
.replace(new RegExp(str+'\\s*\\^=\\s*'+str,'g'), 'starts-with($1,$2)')
.replace(new RegExp(str+'\\s*\\$=\\s*'+str,'g'), 'substring($1,string-length($1)-string-length($2)+1)=$2');
var got = document.evaluate(xpath, root||document, null, 5, null);
var result=[];
while (next = got.iterateNext())
result.push(next);
return result;
}
Run Code Online (Sandbox Code Playgroud)
我觉得它真好太好了,这只是一个firefox功能(xpath?)还是慢?基本上为什么我会使用Sizzle呢?
javascript internet-explorer dom cross-browser document.evaluate
我如何在git中确定仍然存在的来自特定作者的所有行.比方说,Tony已经参与了我的项目,我想找到我的开发分支中仍然存在的所有行,并且来自Tony撰写的提交?
我有一个Web应用程序.我想使用HTML 5内置通知API在用户位于特定页面时从服务器执行推送通知.可能吗?
更新到OS X 10.11后,我的java停止工作.我读过多个我应该做的地方:
sudo mv /usr/bin/java /usr/bin/java.old
sudo ln -ns /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
Run Code Online (Sandbox Code Playgroud)
但问题是当我运行第一行代码时,我得到:
mv: rename /usr/bin/java to /usr/bin/java.old: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题?
如何使用redux-form和Fetch API 进行服务器端验证?文档中提供了" 提交验证 "演示,其中说服务器端验证的推荐方法是从onSubmit函数返回一个promise.但是我应该把这个承诺放在哪里?据我所知,onSubmit函数应该是我的动作.
<form onSubmit={this.props.addWidget}>...
Run Code Online (Sandbox Code Playgroud)
this.props.addWidget实际上是我的行动,如下所示.
import fetch from 'isomorphic-fetch';
...
function fetchAddWidget(widget, workspace) {
return dispatch => {
dispatch(requestAddWidget(widget, workspace));
return fetch.post(`/service/workspace/${workspace}/widget`, widget)
.then(parseJSON)
.then(json => {
dispatch(successAddWidget(json, workspace));
DataManager.handleSubscribes(json);
})
.catch(error => popupErrorMessages(error));
}
}
export function addWidget(data, workspace) {
return (dispatch, getState) => {
return dispatch(fetchAddWidget(data, workspace));
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用fetch API.我期望fetch将返回promise并且redux-form将捕获它但是这不起作用.如何使它与示例中的承诺一起工作?
同样从演示中我无法理解this.props.handleSubmit函数应该提供什么.对我来说,演示不解释这一部分.
我对弹簧安全URL的CORS过滤器有问题.它没有设置Access-Control-Allow-Origin和属于spring sec(登录/注销)或由Spring Security过滤的URL上的其他公开标头.
这是配置.
CORS:
@Configuration
@EnableWebMvc
public class MyWebMvcConfig extends WebMvcConfigurerAdapter {
********some irrelevant configs************
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/*").allowedOrigins("*").allowedMethods("GET", "POST", "OPTIONS", "PUT")
.allowedHeaders("Content-Type", "X-Requested-With", "accept", "Origin", "Access-Control-Request-Method",
"Access-Control-Request-Headers")
.exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials")
.allowCredentials(true).maxAge(3600);
}
}
Run Code Online (Sandbox Code Playgroud)
安全:
@Configuration
@EnableWebSecurity
public class OAuth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).and()
.formLogin()
.successHandler(ajaxSuccessHandler)
.failureHandler(ajaxFailureHandler)
.loginProcessingUrl("/authentication")
.passwordParameter("password")
.usernameParameter("username")
.and()
.logout()
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.logoutUrl("/logout")
.logoutSuccessUrl("/")
.and()
.csrf().disable()
.anonymous().disable()
.authorizeRequests()
.antMatchers("/authentication").permitAll()
.antMatchers("/oauth/token").permitAll()
.antMatchers("/admin/*").access("hasRole('ROLE_ADMIN')")
.antMatchers("/user/*").access("hasRole('ROLE_USER')");
}
} …Run Code Online (Sandbox Code Playgroud) 我们在公共站点上有一个测试环境。我们在 chrome 上使用 --disable-web-security 标志,让测试人员在手动测试阶段绕过公共服务调用的 CORS 错误。而且我们在代理机器上也有本地主机请求。然而今天,随着 Chrome 98 的更新,我们开始努力应对针对 localhost 的网络请求。
\n我们收到的错误是来自公共站点的本地主机请求:
\nAccess to XMLHttpRequest at \'https://localhost:3030/static/first.qjson\' from origin \'https://....com\' has been blocked by CORS policy: Request had no target IP address space, yet the resource is in address space `local`.
本地主机上的站点配置为返回 Access-Control-Allow-* CORS 标头,包括“Access-Control-Allow-Private-Network: true”。
\n而且我也没有看到任何预检请求。只有一个 GET 请求出现 CORS 错误。
\n我们怀疑这可能是您通过 --disable-web-security 禁用 Web 安全性时引起的副作用。它可能会阻止获取目标 IP 地址空间。我们的假设基于 CORS 预检部分https://wicg.github.io/private-network-access/上的 CORS 预检部分
\n\n3.1.2. CORS 预检
\n应调整 HTTP 获取算法,以确保为从安全上下文发起的所有专用网络请求触发预检。
\n这里的主要问题还是在 HTTP 网络获取中获得连接之前,响应\xe2\x80\x99s …
我尝试在浏览器中通过fetch API发布松弛消息:
fetch('https://hooks.slack.com/services/xxx/xxx/xx', {
method: 'post',
headers: {
'Accept': 'application/json, text/plain, */*',
'Content-type': 'application/json'
},
body: JSON.stringify({text: 'Hi there'})
})
.then(response => console.log)
.catch(error => console.error);
};
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Fetch API cannot load:
https://hooks.slack.com/services/xxxxxxx/xxxxx.
Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response.
Run Code Online (Sandbox Code Playgroud)
该怎么办?
cors ×4
javascript ×4
fetch-api ×2
java ×2
spring ×2
spring-boot ×2
blame ×1
content-type ×1
dom ×1
es6-promise ×1
git ×1
git-blame ×1
html ×1
html5 ×1
macos ×1
push-api ×1
redux ×1
redux-form ×1
rename ×1
required ×1
safari ×1
slack ×1
spring-mvc ×1
terminal ×1
validation ×1
web-push ×1
zimbra ×1