这是两个页面,test.php和testserver.php.
test.php的
<script src="scripts/jq.js" type="text/javascript"></script>
<script>
$(function() {
$.ajax({url:"testserver.php",
success:function() {
alert("Success");
},
error:function() {
alert("Error");
},
dataType:"json",
type:"get"
}
)})
</script>
Run Code Online (Sandbox Code Playgroud)
testserver.php
<?php
$arr = array("element1",
"element2",
array("element31","element32"));
$arr['name'] = "response";
echo json_encode($arr);
?>
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:当这两个文件都在同一台服务器(localhost或web服务器)上时,它可以工作并被alert("Success")
调用; 如果它位于不同的服务器上,意味着Web服务器上的testserver.php和localhost上的test.php,它就无法工作,并且alert("Error")
正在执行.即使ajax中的URL更改为http://domain.com/path/to/file/testserver.php
具体来说,它与default(async: true
)有何不同?
在什么情况下我会想明确的设置async
到false
,并且它有一些做以防止页面上的其他事件烧制而成?
我一直在谷歌搜索这个,并在我的错误修复列表中避免这个错误很长一段时间了,但我终于到达了列表的末尾,最后我要做一个函数返回true/false来说明是否验证成功与否.
我正在使用ajax将某些字段与已经存在于db中的字段进行比较,并且默认情况下该$.post()
方法是异步操作的.
我在调用中设置了一个变量,onSuccess
并且调用方法因为这个没有得到响应,所以我的所有js/jquery在pageLoad上都失败了...我宁愿我仍然可以继续使用该$.post
方法.
像许多其他人一样,我的网站正在使用jQuery.当我打开开发人员工具时,我看到一条警告说XMLHTTPRequest是
由于其对最终用户体验的不利影响而被弃用.
我继续阅读部分文档,但这是相当技术性的.有人可以用简单的术语解释从XMLHTTPRequest转换为WHATWG的后果吗?它说它发生在2012年.
此外,文档说工作人员之外的同步XMLHttpRequest正在从Web平台中删除,当发生这种情况时,如果用户代理在服务中拥有它们,他们是否需要修改现有代码?
我阅读了关于jQuery验证器的回复,其中概述了一种根据数据库中的值检查用户名的方法.
我已经尝试过实现这个方法,但无论从PHP文件返回什么,我总是得到用户名已被取消的消息.
这是自定义方法......
$.validator.addMethod("uniqueUserName", function(value, element) {
$.ajax({
type: "POST",
url: "php/get_save_status.php",
data: "checkUsername="+value,
dataType:"html",
success: function(msg)
{
// if the user exists, it returns a string "true"
if(msg == "true")
return false; // already exists
return true; // username is free to use
}
})}, "Username is Already Taken");
Run Code Online (Sandbox Code Playgroud)
这是验证码...
username: {
required: true,
uniqueUserName: true
},
Run Code Online (Sandbox Code Playgroud)
是否有一种特定的方式我应该从PHP返回消息.
谢谢
一个
问题相当简单和技术性:
var it_works = false;
$.post("some_file.php", '', function(data) {
it_works = true;
});
alert(it_works); # false (yes, that 'alert' has to be here and not inside $.post itself)
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:
alert(it_works); # true
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?如果没有可以$.post()
返回要应用的值it_works
?
我正在尝试调用包含jQuery代码的函数.我希望这个函数返回jQuery语句的结果.它没有用,我正在试图找出原因.
function showGetResult (name) {
var scriptURL = "somefile.php?name=" + name;
return $.get(scriptURL, {}, function(data) { return data; });
}
alert (showGetResult("John"));
Run Code Online (Sandbox Code Playgroud)
警报显示" [object XMLHttpRequest]
." 但是,如果我在函数之外单独运行jQuery语句,它可以正常工作 - >$.get(scriptURL, {}, function(data) { alert(data); })
我希望能够通过将其放在返回$.get
数据的函数内来重用此代码.我在这里犯了什么根本错误?
我该如何制作功能呢?
//check if station is alive
$.ajax({
url: "lib/grab.php",
data: "check_live=1&stream_url="+valueSelected,
type: "GET",
success: function (resp) {
if (resp == 1) {
play_this(valueSelected);
} else {
//
}
},
error: function (e) {
console.dir(e);
}
});
Run Code Online (Sandbox Code Playgroud)
我以为我可以这样做:
function is_alive(valueSelected) {
result = false;
//check if station is alive
$.ajax({
url: "lib/grab.php",
data: "check_live=1&stream_url="+valueSelected,
type: "GET",
success: function (resp) {
if (resp == 1) {
result = true;
} else {
//
}
},
error: function (e) {
console.dir(e);
}
}); …
Run Code Online (Sandbox Code Playgroud) 如何修改$.ajax()
函数选项的默认值?
理想情况下做类似的事情:
//set ajax async to false
$(someSelector).load(url, data, function(){});
//set ajax async to true
Run Code Online (Sandbox Code Playgroud)
让我.post()
同步进行.
听我说.我完全理解这段代码.
$.getJSON(someURL, function(data){
//do something with my data
})
.success(function () {
//Call what you want on success
})
Run Code Online (Sandbox Code Playgroud)
如果我只需要采取一个非常静态的动作,这似乎很好.但是,如果我想减少限制,例如这个怎么办?
function my_func(){
$.getJSON(someURL, function(data){
//do something with my data... like modify an array or the dom
})
}
Run Code Online (Sandbox Code Playgroud)
现在是司机
my_func();
//Now I want to call a function that relies on the data that my_func brought into the script.
Run Code Online (Sandbox Code Playgroud)
如果我想这样做,我编写脚本的方式有问题吗?或者我只是错过了一些很棒的内置方法?
jquery ×10
javascript ×7
ajax ×6
cross-domain ×1
global ×1
html ×1
json ×1
synchronous ×1
validation ×1