我对PHP一无所知,并要求我从PHP调用一个ASP.Net MVC页面来集成到PHP页面上。
我认为使用ajax调用会起作用并且更容易实现。但它似乎不起作用。
我的代码:
<div class="pageContainer">
<?php
echo 'start debugging';
$param1=$_GET['param1'];
$param2=$_GET['param2'];
$htmlPage = '';
$parameters = {
myParam1: $param1,
myParam2: $param2
};
try {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/MyController/MyAction',
data: $parameters,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
processdata: true,
success: function(result){
try {
$htmlPage = result->HtmlReturned;
}
catch (er) {
alert('Error');
return false;
}
},
async: true,
crossDomain: false,
error: function(er){ alert('Error'); }
});
} catch (e) {
echo 'catch';
alert('Error');
}
echo $htmlPage;
?>
</div>
怎么了?我不能使用AJAX调用吗?我没有得到任何错误,我甚至无法调试,所以我不知道有什么问题。我的页面完全是空的,没有任何标题。
PHP项目不是我的,所以我不能包含任何扩展或类似的东西。
就像@RiggsFoly所说,目前我的ajax调用没有被解释为javascript。所以我将我的代码转换为完全JS代码并将其包装在<script>
标记中。
我不知道怎么样,我可以在JS中访问param1
和param2
中的$_GET['param1']
和$_GET['param2']
变量。
所以,现在我的代码更清晰,更有效:
<script type="text/javascript">
$(document).ready(function()
{
var parameters = {
myParam1: param1,
myParam2: param2
};
try {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/MyController/MyAction',
data: parameters,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
processdata: true,
success: function(result){
try {
$(".pageContainer").html(result.HtmlReturned);
}
catch (er) {
alert('Error');
}
},
async: true,
crossDomain: false,
error: function(er){ alert('Error'); }
});
} catch (e) {
alert('Error');
}
});
</script>
<div class="pageContainer">
</div>