我正在开发一个简单的 Swift 测试应用程序,它只调用我的服务器上的 Perl 脚本。现在我只想发送用户名和 ID,然后将它们返回到 JSON 响应中。没什么,我还在学习阶段。
但无论我尝试哪种方式,我都无法成功发送 URLRequest 中的两个参数。
在下面的示例中,您会看到我尝试在主 url 中发送它们,我尝试将它们添加为 forHTTPHeaderFields,但我在 URLSessionDataDelegate 中返回的响应始终是:
数据为 {"userid":"","username":""} JSON 可选({ userid = ""; username = "";
let file = File(link: "http://example.com/cgi-bin/swift.pl?username=John&userid=01", data: "hello")
uploadService.start(file: file)
Run Code Online (Sandbox Code Playgroud)
在我的 URLSession 实例中我尝试过:
// From one of my view controllers I create a File struct
// from a YouTube lesson. Eventually I want to send a file.
// So for now am using just *Hello*:
let uploadTask = UploadTask(file: file)
let url = URL(string: …Run Code Online (Sandbox Code Playgroud) 我有一个表格的页面.以下哪种方法最好用于检查表单是否已提交?它们有何不同?
方法1:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//some code
}
Run Code Online (Sandbox Code Playgroud)
方法2:
if(isset($_POST['submit'])){
//some code
}
Run Code Online (Sandbox Code Playgroud)
方法3(显然,如果我将submitted=true提交添加到查询字符串):
if($_GET['submitted'] == true){
//some code
}
Run Code Online (Sandbox Code Playgroud) 代码:( index.php):
<head>
<?php
if(isset($_GET['text1']))
{
some_function();
}
?>
</head>
<body>
<form id="form">
<input type="text" id="text1" name="text1"/>
<input type="text" id="text2" name="text2"/>
<input type="submit" id="submit" value="submit"/>
</form>
<script>
$(document).ready(function(){
$("#submit").click(function(){
var dataString=$("form#form").serialize();
var proccessPage="<?php echo $_SERVER['PHP_SELF'] ?>";
alert(dataString);
$.ajax({
type: "POST",
url: proccessPage,
data: dataString,
});
return false;
});
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么不some_function();拨打电话?我不知道问题是在ajax,php还是在哪里.我花了两天时间尝试使用$.post,或者$.ajax在代码中搜索可能的错误等,但我发现它没有任何问题.
你知道些什么吗?谢谢你的所有答案.
我有一个分页的搜索结果页面,目前页码包含在查询字符串中,如下所示:
mysite.com/search/database-search?name=smith&page=10
我不希望用户能够直接在网址中更改页码,他们应该只能通过单击页面按钮来更改页面.所以我需要从查询字符串中删除页面,但仍然将页码作为参数传递,以获得适当的结果页面.
我以为我可以通过使用POST代替GET来实现这一点; 我的页面按钮最初被设置为"href =/search/database-search?name = smith&page = xx"的链接,但我认为如果我使用表单来提交页码,那将会传递页码而不会在查询字符串中显示它.
这是我尝试的代码:
function postToPage(page) {
debugger;
var url = window.location.href;
var newForm = $("<form>", {
"action": url
}).append($("<input>", {
"name": "page",
"value": page,
"type": "hidden"
}));
newForm.submit();
}
<a onclick="postToPage($(this).text());" href="javascript:void(0)" class="page-button">@pageNum</a>
Run Code Online (Sandbox Code Playgroud)
但是,它没有像我预期的那样工作.当我单击一个页面按钮时,URL中的查询字符串被忽略,并且"page"仍然显示在查询字符串中,因此结果与我正在尝试完成的内容相反; 我丢失了我需要的查询参数,"page"是查询字符串中唯一仍然包含的内容.
当我点击页面按钮时,我被带到"/ search/database-search?page = x"
有没有办法将页面用作查询参数而不显示在URL中
编辑:我将我的表单方法更改为"POST",但"页面"变量正在丢失.现在包含当前查询字符串中的参数,但未使用页面值.
我有一个表单,我有一个密码字段.当用户提交表单时,包含密码的所有字段在通过URL到另一个php页面时都会在URL中清晰可见.有什么方法可以避免这种情况吗?我不希望密码可见.
任何人都可以告诉我区别Httpost和Httpget method.Httpclient可以执行POST和GET方法.请解释1和第2方法之间的区别
1.)httpclient.execute(httppost)
而另一个
2.) httpclient.execute(httpget)
php ×3
post ×3
forms ×2
get ×2
ajax ×1
android ×1
form-submit ×1
html ×1
https ×1
javascript ×1
jquery ×1
json ×1
parameters ×1
swift ×1
urlsession ×1