我一直在向控制台添加日志,以便在不使用Firefox调试器的情况下检查不同变量的状态.
但是,在我console.log
在我的main.js
文件中添加一个的许多地方,我收到以下错误而不是我可爱的小手写消息给自己:
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助http://xhr.spec.whatwg.org/
我console.log
可以添加到我的代码使用的替代品或包装器,这不会导致此错误?
我做错了吗?
我正在使用.htaccess重写网址,我使用了html基本标记以使其正常工作.
现在,当我尝试发出ajax请求时,我收到以下错误:
XMLHttpRequest无法加载http://www.wordicious.com/login.php.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" http://wordicious.com "访问.
我正在尝试测试我的角度4.1.0组件 -
export class CellComponent implements OnInit {
lines: Observable<Array<ILine>>;
@Input() dep: string;
@Input() embedded: boolean;
@Input() dashboard: boolean;
constructor(
public dataService: CellService,
private route: ActivatedRoute,
private router: Router, private store: Store<AppStore>) {
}
}
Run Code Online (Sandbox Code Playgroud)
但是,一个简单的"应该创建"测试会引发这个神秘的错误......
NetworkError:无法在'XMLHttpRequest'上执行'send':无法加载'ng:///DynamicTestModule/module.ngfactory.js'.
所以我发现了这个问题,这表明问题是组件有@Input)_
没有设置的参数,但是,如果我像这样修改我的测试:
it('should create', inject([CellComponent], (cmp: CellComponent) => {
cmp.dep = '';
cmp.embedded = false;
cmp.dashboard = false;
expect(cmp).toBeTruthy();
}));
Run Code Online (Sandbox Code Playgroud)
然后我仍然得到相同的问题,同样,如果我@Input()
从组件中删除注释,仍然没有区别.我怎样才能通过这些测试?
我想访问来自相同域但具有不同端口号的信息,为了允许这一点,我添加Access-Control-Allow-Origin
了响应头.
Servlet代码:(发布在www.example.com:PORT_NUMBER)
String json = new Gson().toJson(list);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.setHeader("Access-Control-Allow-Origin", "*");//cross domain request/CORS
response.getWriter().write(json);
Run Code Online (Sandbox Code Playgroud)
jQuery代码:(发布于www.example.com)
$.post('http://www.example.com:PORT_NUMBER/MYSERVLET',{MyParam: 'value'}).done(function(data)
{
alert(data);
});
Run Code Online (Sandbox Code Playgroud)
有几次我收到这个错误(在控制台中):
XMLHttpRequest cannot load 'http://www.example.com:PORT_NUMBER/MYSERVLET'
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
此错误通常$.post
在执行时第一次出现.第二次它允许.
我的问题是有缺少servlet
或jQuery
代码?
任何建议将不胜感激.
UPDATE1
我改变了:
response.setHeader("Access-Control-Allow-Origin", "*");
Run Code Online (Sandbox Code Playgroud)
至:
response.setHeader("Access-Control-Allow-Origin", "http://www.example.com");
Run Code Online (Sandbox Code Playgroud)
然后我在控制台中收到此错误:
XMLHttpRequest cannot load http://www.example.com:PORT_NUMBER/MyServletName
The 'Access-Control-Allow-Origin' whitelists only 'http://www.example.com'
Origin 'http://www.example.com' is not in the list,
and is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
[注意:白名单和原点相同,但仍然会出错.它有时会起作用,并且有时会出现上述错误.]
如果您需要更多信息,请与我们联系.
jquery ×3
ajax ×2
cors ×2
javascript ×2
angular ×1
angular-cli ×1
backbone.js ×1
console.log ×1
debugging ×1
firefox ×1
java ×1
unit-testing ×1