因此,根据jQuery Ajax文档,它在发送请求时以查询字符串的形式序列化数据,但设置processData:false
应该允许我在正文中发送实际的JSON.不幸的是,我很难确定第一个,如果发生这种情况,那么第二个对象看起来是什么,它被发送到服务器.我所知道的是服务器没有解析我发送的内容.
使用http客户端发布对象文字时{someKey:'someData'}
,它可以工作.但是当使用jQuery时data: {someKey:'someData'}
,它会失败.不幸的是,当我在Safari中分析请求时,它说消息有效负载是[object Object]
......很棒......而且在Firefox中帖子是空白的...
在Java端记录正文内容时,它实际上[object Object]
是如何发送REAL JSON数据的?
有没有人有过在请求体中序列化JSON数据的Java服务的经验,请求是从jQuery发送的?
BTW这里是完整的$ .ajax请求:
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
Run Code Online (Sandbox Code Playgroud) 这是我得到的错误消息:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided
('https://www.youtube.com') does not match the recipient window's origin
('http://localhost:9000').
Run Code Online (Sandbox Code Playgroud)
我已经看到了目标来源http://www.youtube.com
和收件人来源的其他类似问题https://www.youtube.com
,但没有一个像我的目标所在的地方https://www.youtube.com
和原点http://localhost:9000
.
当我rake db:seed
在我的Rails
应用程序中运行时,我收到此错误:
US-ASCII中的无效字节序列(参数错误)
我只是添加science_majors
到我的种子文件,现在当我运行rake db:seed
它给我这个错误:
无效的字节序列错误
为什么会这样,我该如何解决?
seed.rb的一部分
@college = College.find_or_create_by_name!('University of Pittsburgh')
if @college.update_attributes(
url: 'university-of-pittsburgh',
public: 'Public',
years: '4-year',
category: 'National University',
calendar: 'Semester',
location: 'Pittsburgh, PA',
setting: 'Large City (250-500k)',
retention: '90',
majors: 'business/marketing: 15%|social sciences: 14%|health professions: 11%|english: 10%|engineering: 9%|psychology: 8%|biology: 7%|history: 5%',
scholarships_link: 'http://www.oafa.pitt.edu/universityschlrs.aspx',
map: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=university+of+pittsburgh&aq=&sll=40.444261,-79.970448&sspn=0.142165,0.251656&ie=UTF8&hq=university+of+pittsburgh&t=m&ll=40.443486,-79.958245&spn=0.010798,0.021038&output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=university+of+pittsburgh&aq=&sll=40.431368,-79.9805&sspn=0.142165,0.251656&ie=UTF8&hq=university+of+pittsburgh&t=m&ll=40.443486,-79.958245&spn=0.010798,0.021038" style="color:#0000FF;text-align:left">View Larger Map</a></small>',
street_view: '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" …
Run Code Online (Sandbox Code Playgroud) 我知道怎么...
但我不知道如何使用Mongoose从集合中删除所有文档.我想在用户点击按钮时执行此操作.我假设我需要向某个端点发送AJAX请求并让端点执行删除操作,但我不知道如何在端点处理删除操作.
在我的示例中,我有一个Datetime
集合,我想在用户单击按钮时删除所有文档.
API /日期/ index.js
'use strict';
var express = require('express');
var controller = require('./datetime.controller');
var router = express.Router();
router.get('/', controller.index);
router.get('/:id', controller.show);
router.post('/', controller.create);
router.put('/:id', controller.update);
router.patch('/:id', controller.update);
router.delete('/:id', controller.destroy);
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
API /日期/ datetime.controller.js
'use strict';
var _ = require('lodash');
var Datetime = require('./datetime.model');
// Get list of datetimes
exports.index = function(req, res) {
Datetime.find(function (err, datetimes) {
if(err) { return handleError(res, err); }
return res.json(200, datetimes);
});
};
// Get …
Run Code Online (Sandbox Code Playgroud) 从MDN for NodeList:
在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中.例如,Node.childNodes是实时的:
Run Code Online (Sandbox Code Playgroud)var parent = document.getElementById('parent'); var child_nodes = parent.childNodes; console.log(child_nodes.length); // let's assume "2" parent.appendChild(document.createElement('div')); console.log(child_nodes.length); // should output "3"
在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容.document.querySelectorAll返回一个静态NodeList.
所以....有点烦人!对于哪些方法返回实时列表以及哪些方法返回静态列表,是否有任何中心引用,而无需单独检查DOM API的所有各个部分?这里有什么规则吗?
我跑的时候遇到错误karma start
:
$ karma start
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [preprocess]: Can not load "ng-html2js", it is not registered!
Perhaps you are missing some plugin?
...
Run Code Online (Sandbox Code Playgroud)
但是在我的包文件中,"karma-ng-html2js-preprocessor": "*",
以及包含此预处理器代码的文件夹node_modules
.
关于如何解决问题的任何想法?
我的问题与使用 Rails 3.1相同,您将“特定于页面的”JavaScript 代码放在哪里?,仅适用于 Rails 6 而不是 Rails 3.1。
假设我有一些 JavaScript 想要用于我的帖子索引页面。我把那个文件放在哪里,我如何包含它?
在上一个问题中,答案通常使用 Rails Asset Pipeline。但是,对于 Rails 6,我的理解是它使用 webpacker 而不是 JavaScript 文件的 Asset Pipeline。
注意:我不希望始终包含该文件。例如。如果我在作者索引页上,我不希望包含帖子索引页的 JavaScript 文件。为什么?想象一下,我$('li').on('click', changeColor);
在 JS 文件中拥有帖子索引页面。我可能不希望该代码在作者索引页上运行,但如果包含该文件,它就会运行。您可以通过命名空间来解决这个问题,但我认为不包含不必要的文件会更干净(并且性能更高)。
我可以这样做吗?
<button ng-click='vm.foo()' ui-sref='state'>test</button>
Run Code Online (Sandbox Code Playgroud) 假设您想要在$scope
更改属性时执行某些操作.并说这个属性绑定到一个input
字段.使用$watch
与使用相比有哪些优点/缺点ngChange
?
HTML
<input ng-model="foo" ng-change="increment()">
<p>foo: {{foo}}</p>
<!-- I want to do something when foo changes.
In this case keep track of the number of changes. -->
<p>fooChangeCount: {{fooChangeCount}}</p>
Run Code Online (Sandbox Code Playgroud)
JS
// Option 1: $watch
$scope.$watch('foo', function() {
$scope.fooChangeCount++;
});
// Option 2: ngChange
$scope.fooChangeCount = 0;
$scope.increment = function() {
$scope.fooChangeCount++;
};
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/4xJWpU6AN9HIp0OSZjgm?p=preview
我知道有时您需要使用$watch
(如果您要观看的值未绑定到输入字段).我理解有时你需要使用ngChange
(当你想要做一些事情来响应输入的变化,但不一定是为了响应范围属性的变化).
但是,在这种情况下,两者都完成了同样的事情.
我的想法:
ngChange
看起来更干净,更容易理解正在发生的事情.$watch
似乎它可能会稍微快一点,但可能可以忽略不计.有了ngChange
,我认为Angular必须在编译阶段做一些额外的工作来设置事件监听器,并且可能额外的事件监听器会降低速度.无论您是否使用ngChange
,摘要周期都会根据更改运行,因此您有机会收听某些内容并调用函数以响应更改.我的网站是http://www.collegeanswerz.com/.我正在使用rails.该代码用于搜索大学.我希望用户能够输入大学名称,单击输入,然后转到网址,而不是查看搜索结果(如果用户正确输入名称.如果不是,我想显示搜索结果) .我正在使用"a"和"stackoverflow.com"作为占位符,而我试图让它工作.
我正在使用window.location.href基于此:如何在JavaScript/jQuery中重定向到另一个网页?
JavaScript的
$("#search_text").submit(function() {
if ($("#search_field").val() == "a")
{
window.location.href = "http://stackoverflow.com";
alert('worked');
}
});
Run Code Online (Sandbox Code Playgroud)
布局文件
<%= form_tag("/search", :method => 'get', :id => 'search_text', :class => 'form_search') do -%>
<div id="search"> <%= search_field_tag :search, params[:search], :placeholder => 'enter college', :id => "search_field", :class => 'input-medium search-query' %></div>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
static_pages_controller.rb
def search
@colleges = College.search(params[:search])
end
Run Code Online (Sandbox Code Playgroud)
警报正在运行,它告诉我if语句中的内容应该被执行.但它带我到正常的搜索结果而不是stackoverflow.com.为什么是这样?
angularjs ×4
javascript ×4
jquery ×2
ajax ×1
html ×1
json ×1
karma-runner ×1
mongodb ×1
mongoose ×1
ng-html2js ×1
nodelist ×1
performance ×1
rake ×1
seeding ×1
webpacker ×1
youtube ×1
youtube-api ×1