我正在构建一个Laravel应用程序.在后端,$controller->wantsJson()方法是TRUE请求的内容类型application/json.所以,为了满足这个要求,我的jQuery AJAX调用就是这样.
jQuery.ajax({
type: "POST",
method: "PUT",
url: $form.attr('action'),
data: $form.serialize(),
dataType: "json",
contentType: "application/json; charset=utf-8"
})
Run Code Online (Sandbox Code Playgroud)
这正确地触发了wantsJson()我需要的响应.问题是jQuery无法application/json正确提供POST数据.它尝试将其写为查询字符串,当它接收到该内容类型时,它不适用于PHP后端.
为了满足这一点,我需要将JavaScript对象数组字符串化到data字段中.
JSON.stringify(dataObj)
Run Code Online (Sandbox Code Playgroud)
所以现在的问题是,我没有将多维表单转换为对象数组的简洁方法.如果我只是尝试转换输出$.serializeArray(),我得到这个,这是后端无法解释的.
{
'something' : 1,
'field[foo]' : 2,
'field[bar][]' : "a",
'field[bar][]' : "b",
'field[bar][]' : "c",
}
Run Code Online (Sandbox Code Playgroud)
那当然不行.我需要某种可以转换此表单的RegEx解析器...
<input name="something" value="1" />
<input name="field[foo]" value="2" />
<input name="field[bar][]" value="a" />
<input name="field[bar][]" value="b" />
<input name="field[bar][]" value="c" />
Run Code Online (Sandbox Code Playgroud)
进......
{
'something' : 1,
'field' : …Run Code Online (Sandbox Code Playgroud) 在HTML5规范中,建议您将后备素材放入<video>不支持它的旧版浏览器的代码中。
<video width="400" controls>
<source src="mov_bbb.mp4" type="video/mp4">
<source src="mov_bbb.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
Run Code Online (Sandbox Code Playgroud)
但是,当不支持所有源类型时,我找不到任何可用于回退的东西。例如,我的Chromium浏览器无法播放video/mp4,但可以播放video/ogg。因此,我希望这会呈现后备文本。
<video width="400" controls>
<source src="mov_bbb.mp4" type="video/mp4">
Your browser does not support HTML5 video.
</video>
Run Code Online (Sandbox Code Playgroud)
相反,我只是得到了一个没有任何内容的视频播放器,因为它无法加载mp4文件。
没有可用的视频源时,是否有办法在HTML 5视频中进行回退?我知道我尝试的回退仅适用于旧版浏览器,但仍然需要回退,因为没有可用的源。
我想使用Stripe API每月向用户收取他们指定的金额.看来Stripe不允许网站创建订阅,而无需先手动设置计划,限制人们可以自行计费到预先指定的金额.
做这个的最好方式是什么?