我有一个CasperJS的测试步骤,它执行以下操作:
this.fillSelectors("#registration-form", {
"#first-name": "Bob",
"#last-name": "Smith",
"#email-address": RANDOM_EMAIL,
"#password": PASSWORD,
"#password-confirm": PASSWORD
}, true);
Run Code Online (Sandbox Code Playgroud)
我希望能够发送HTTP标头.如果没有"手动"发布表单,我似乎无法找到这样做的方法,这不是我想要的那种测试.
我是巴贝尔新手.
我这样设置:
.babelrc:
{
"presets": ["es2015", "es2017"]
}
Run Code Online (Sandbox Code Playgroud)
gulpfile:
gulp.task('default', function() {
return gulp.src(['src/**/*.js', '!src/**/3rd/*'])
.pipe(babel())
.pipe(gulp.dest('dist'));
});
Run Code Online (Sandbox Code Playgroud)
然而,这似乎是编译为es5,这在Safari中并不完全支持.
有没有办法设定目标?那么它可以编译成ES3吗?
再会。
我正在尝试将一个简单的数据从一个 php 文件 (manage.php) 发送到另一个 (view.php)。
我无法通过表单发送数据,我想通过 JS 脚本发送数据。这是我的尝试:
var read = function(id) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "view.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("id=" + id);
}Run Code Online (Sandbox Code Playgroud)
在 view.php 中,使用 $_POST["id"] 会导致错误,指出索引“id”未定义。
发送数据的正确方法是什么?谢谢你。
我认为我通常会在 ajax 中做到这一点。
但是,例如,如果我有一个按钮和一个将具有查询值的搜索输入框,我如何将搜索值(以及可能不是通过表单字段获得的多个值/参数)传递给按钮单击时的 Django 视图网址?
HTML
<div>
<input id="search" name="search" type="text" class="query-search" placeholder="Search...">
<a class="btn btn-primary btn-lg btn-space col-sm-3" href="{% url 'routes_view' %}">View Routes</a>
</div>
Run Code Online (Sandbox Code Playgroud)
观看次数
def view_detail(request):
...
<How to get values from HTML without using ajax? Or its the only way?>
Run Code Online (Sandbox Code Playgroud)
网址
url(r'^view/', views.view_detail, name='view_detail')
Run Code Online (Sandbox Code Playgroud) 我是django的新手.我正在创建一个将用户数据发布到Django服务器的简单应用程序.但是我遇到了关于queryDict的问题.它是空的.代码是:
@csrf_exempt
def create_user(request):
"""
This function creates users
:param request: post request from front-end
:return: success/failure
"""
if request.method == 'POST':
#x = json.loads(request.POST)
print(request.POST)
return JSONResponse(request.POST)
Run Code Online (Sandbox Code Playgroud)
POST请求是:
function post(){
xmlhttp = new XMLHttpRequest();
var url = "http://127.0.0.1:8000/create_user/";
xmlhttp.open("POST", url, true);
//xmlhttp.setRequestHeader("Content-type", "application/json");
xmlhttp.onreadystatechange = function () { //Call a function when the state changes.
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
}
var parameters = {
"username": "myname",
"password": "mypass"
};
xmlhttp.send(JSON.stringify(parameters));
}
Run Code Online (Sandbox Code Playgroud) 我使用以下代码在javascript中通过xmlhttp发送一个字符串:
function SendPHP(str, callback) {
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(xmlhttp.responseText); //invoke the callback
}
}
xmlhttp.open("GET", "testpost.php?q=" + encodeURIComponent(str), true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
和一些测试PHP:
$q = $_GET['q'];
echo $q;
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我开始发送更大的字符串,在这种情况下我得到"HTTP/1.1 414 Request-URI Too Long"错误.
经过一番研究后我发现我需要使用"POST".所以我改成了:
xmlhttp.open("POST", "sendmail.php?q=" + str, true);
Run Code Online (Sandbox Code Playgroud)
和:
$q = …Run Code Online (Sandbox Code Playgroud) 正如标题所说,我试图通过 HTML 表单捕获用户的输入,并在提交时将他们的数据发布到 API。
我可以成功 POST 并从 API 获得响应,但是没有附加任何表单数据(至少我相信这是持续存在的问题)。
由于这是练习,我使用的是我在https://reqres.in/在线找到的免费发布 API 。感谢所有帮助!
HTML
<form id="myForm">
<label for="myName">Send me your name:</label>
<input id="myName" name="name" value="Alex">
<br>
<label for="userId">your id:</label>
<input id="userId" name="id" value="123">
<br>
<label for="myJob">your name:</label>
<input id="myJob" name="job" value="Web Dev">
<br>
<input id="postSubmit" type="submit" value="Send Me!">
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的 JavaScript
const thisForm = document.getElementById('myForm');
thisForm.addEventListener('submit', async function (e) {
e.preventDefault();
let response = await fetch('https://reqres.in/api/users', {
method: 'POST',
body: new FormData(thisForm)
});
let result = await response.json();
alert(result.message) …Run Code Online (Sandbox Code Playgroud) 我使用来自使用XMLHttpRequest发送POST数据的示例来创建此JavaScript代码:
function PostXML(webURL, post_data) {
var objHTTP = new ActiveXObject("MSXML2.XMLHTTP");
objHTTP.open("POST", webURL, false);
objHTTP.setRequestHeader("Content-Type", "application/xml; charset=utf-8");
objHTTP.setRequestHeader("Accept", "application/xml; charset=utf-8");
objHTTP.setRequestHeader("Content-Length", post_data.length);
objHTTP.send(post_data);
while((objHTTP.readyState != 4) && (objHTTP.readyState != 'complete')) {
Delay(100);
}
if(200 != objHTTP.Status) {
Log.Message("Returned Status Code of: " + objHTTP.Status);
Log.Message("Status Text: " + objHTTP.StatusText);
}
else {
Log.Message("Returned Status Code of: " + objHTTP.Status);
}
return objHTTP.responseText;
}
Run Code Online (Sandbox Code Playgroud)
我也需要PUT和DELETE东西.如何传输此代码才能使用PUT,以及如何传输此代码以便能够执行此操作DELETE?
任何其他同样有效的例子也很好.
javascript ×6
ajax ×2
django ×2
python ×2
api ×1
babel ×1
casperjs ×1
form-submit ×1
forms ×1
gulp ×1
html ×1
http-delete ×1
http-headers ×1
http-put ×1
httprequest ×1
phantomjs ×1
php ×1
post ×1
xml ×1