小编Em *_*dhu的帖子

如何将HTML表单数据作为JSON发送到服务器?

首先,我知道很多问题都有相同的标题..我看到了很多东西,但到目前为止我没有任何作用.这就是为什么我打开这个问题.

我有两个场景基本上1)以html格式定义"动作"和"方法".2)没有html形式的"动作"和"方法".

所以这是第一种情况,

1)我有一个只有两个字段的表单,即电子邮件和密码.

这是snippit

<form id="login-form" action="http://192.168.52.166:6000/api/2/users/login/" method="post">

<p><label for="email">Email</label>
<input type="email" name="email" id="email"></p>

<p><label for="password">Password</label>
<input type="password" name="password" id="password"></p>

<button value="Submit" type="submit">Login</button>
</form>
Run Code Online (Sandbox Code Playgroud)

首先,当我提交表单时,它会将所有字段值发送为url编码.urlencoded表单的默认内容类型.我知道.所以现在我做的是,添加ajax将其作为json发送.

这是我的jquery snippit,

$('form').submit(function(){

    var obj = $('form').serializeJSON();

    $.ajax({
        type: 'POST',
        url: 'http://192.168.52.166:6000/api/2/users/login/',
        dataType: 'json',
        data: JSON.stringify(obj),
        contentType : 'application/json',
        success: function(data) {
            alert(data)
        }
    });
Run Code Online (Sandbox Code Playgroud)

我正在使用SerializeJSON库将表单数据实现为json.

现在发生的事情是同样的事情,它将表单数据发送为urlencoded,而它假设将json作为服务器发送.

serializeJSON();我提醒数据的功能之后,它成功显示为json.

这就是我所做的

var obj = $('form').serializeJSON();
var jsonString = JSON.stringfy(obj);
alert(jsonString)
Run Code Online (Sandbox Code Playgroud)

它成功提醒我我的表单字段的json值.但当我使用它与ajax jquery,如上面的jquery表单演示所示,该json字符串假设前往服务器.但它不是,而是像urlencoded一样.

2)SECOND场景与第一场景相同,但这次没有形式的动作和方法.现在发生的事情是我的表单方法充当GET,即使我在jquery中提到了POST.

注意:我使用Wireshark检查了所有报告,以检查HTTP请求和响应.

我在这里做错了什么?我只想将JSON数据发送到服务器而不是URLEncoded.我该怎么办?

编辑:我发现了另一件事.当我发送表格数据而没有用html格式定义动作和方法时,我从服务器回复了以下请求和响应.(这些回复来自Wireshark)

OPTIONS /api/2/users/login/ HTTP/1.1
Host: 192.168.52.166:6000 …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery json

10
推荐指数
1
解决办法
1万
查看次数

有没有办法在 bitbucket 管道中缓存 DockerHub 图像?

我正在使用来自 dockerhub 的外部 docker 图像。

在每一步中,dockerimage 都会一次又一次地从 dockerhub 中拉取。是的,这是理想的工作流程。

我的问题是我们可以缓存这个图像,这样它就不会在每一步都从 dockerhub 拉取吗?这个 DockerImage 不会经常更改,因为它只预装了节点和流星。

那么可以缓存docker镜像吗?

原来的 bitbucket-pipeline.yml

image: tasktrain/node-meteor-mup

pipelines:
  branches:
    '{develop}':
      - step:
          name: "Client: Install Dependencies"
          caches:
            - node
          script:
            - npm install
            - npm run setup-meteor-client-bundle
          artifacts:
            - node_modules/**
      - step:
          name: "Client: Build for Staging"
          script:
            - npm run build-browser:stag
          artifacts:
            - dist/**
      - step:
          name: "Client: Deploy to Staging"
          deployment: staging
          script:
            - pipe: atlassian/aws-s3-deploy:0.2.2
              variables:
                AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
                AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
                AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
                S3_BUCKET: $S3_STAGING_BUCKET_NAME
                LOCAL_PATH: …
Run Code Online (Sandbox Code Playgroud)

bitbucket bitbucket-pipelines

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

如果互联网速度高加载图像或根本不加载

我在SO中搜索了很多关于类似事情的问题。但似乎没有一个适合我的情况。

我有几个不同的背景图像。现在我根据背景图像手动创建渐变并将其设置为默认值。并在 3 秒后加载默认渐变的背景图像。

但我不想要这种方法。我只想在用户连接良好时才显示图像。或者根本不显示图像,让背景图像的渐变在那里。

代码示例:CSS

.test1 {
    background-image: -webkit-gradient(linear, 0 0, 86 148, color-stop(0.011, #898568));
    background-image: -webkit-linear-gradient(300.1600608380871deg, #898568 1.1%);
    background-image: -moz-linear-gradient(300.1600608380871deg, #898568 1.1%);
    background-image: -o-linear-gradient(300.1600608380871deg, #898568 1.1%);
    background-image: linear-gradient(149.83993916191292deg, #898568 1.1%)
}

.test1-img {
    background-image: url("img1.jpg");
}
Run Code Online (Sandbox Code Playgroud)

代码示例:JS

setTimeout(function() {

$('#test1-div').toggleClass('test1-img');

}, 3000);
Run Code Online (Sandbox Code Playgroud)

那么可以用 jQuery 或 JS 来做到这一点吗?或者有任何插件吗?

PS:我不想要延迟加载算法。因为即使用户的互联网连接速度较低,它也会在用户进入视口时加载图像。对我来说,我根本不想在低速连接时显示背景图像。

PS2:我是新的 JS,所以带有解释的工作解决方案非常适合我理解。

javascript jquery image

2
推荐指数
1
解决办法
888
查看次数

如何在 Vue.js 中使用组件动态包装子字符串?

我想做什么

给定来自用户输入的字符串,我试图用包裹在组件中的特定子字符串来呈现这个字符串。在我的特殊情况下,匹配的子字符串是一个匹配正则表达式模式的日期,并且应该包装它的组件是来自Vuetify芯片

我做了什么

预期视图

以上是我到目前为止所取得的成绩的截图。的输入在其textarea下方呈现,某些子字符串包裹在 Vuetify 的芯片组件中。上面是通过用 HTML 替换正则表达式模式匹配的子字符串来呈现组件并将此字符串提供给v-html用于呈现的指令来实现的。下面是一些代码,显示了这是如何完成的。

<div style="line-height:40px;" v-html="messageOutput"></div>
Run Code Online (Sandbox Code Playgroud)
let finalStr = ''
let str = 'Your a/c no. XXXXXXXXXX85 is credited on 15-11-17.'

let dateReg = /((?=\d{4})\d{4}|(?=[a-zA-Z]{3})[a-zA-Z]{3}|\d{2})((?=\/)\/|-)((?=[0-9]{2})[0-9]{2}|(?=[0-9]{1,2})[0-9]{1,2}|[a-zA-Z]{3})((?=\/)\/|-)((?=[0-9]{4})[0-9]{4}|(?=[0-9]{2})[0-9]{2}|[a-zA-Z]{3})/

const date = dateReg.exec(str)
finalStr = str.replace(date[0], `
 <div class="md-chip md-chip-clickable">
  <div class="md-chip-icon primary"><i class="material-icons">date_range</i></div>
   ${date[0]}
 </div>
`)
Run Code Online (Sandbox Code Playgroud)

什么不起作用

问题是使用自定义组件而不是纯 HTML 不会提供预期的输出。样式不会呈现,组件不会对事件做出反应。

如何在 Vue.js 中使用组件动态包装子字符串?

javascript vue.js vue-component vuejs2

2
推荐指数
1
解决办法
3788
查看次数

如何在网站的所有Anchor(<a>)标签中放置"target ='_ blank'"?

有没有这样做的能力...像jscript或任何其他方法.以及如何在博客中使用它.但一切都很受欢迎.

html javascript xhtml

0
推荐指数
1
解决办法
1064
查看次数