Tôi có một sự kiện gửi jquery thu thập dữ liệu biểu mẫu và đặt nó vào một đối tượng jquery. Tôi muốn lấy đối tượng jquery đó và chuyển nó đến một dịch vụ web coldfusion, nơi tôi có thể sử dụng nó để cập nhật một tệp xml. Tôi không muốn một phản ứng từ dịch vụ web tôi chỉ muốn gửi nó đến các dịch vụ web và fiddle với các dữ liệu từ đó.Chuyển dữ liệu đến hàm CFC với JSON qua AJAX Bài đăng
Client Side/JQuery:
$("#update").on('submit',function() {
$linkName = $('#update').find('#linkName').val();
$linkURL = $('#update').find('#linkURL').val();
$linkInfo = $('#update').find('#linkDesc').val();
$numOfLinks = $('.linkSection').length;
if ($numOfLinks > 0){
// Here the sub link names and urls put into an array
$subLinkName = [];
$subLinkURL = [];
$('.linkSection').each(function(index, element) {
$subLinkName.push($(this).find('#subLinkName').attr('value'));
$subLinkURL.push($(this).find('#subLinkURL').attr('value'));
$data = {linkName: $linkName, linkURL: $linkURL, linkID : $linkID, linkDescription : $linkInfo, subLinkNames : $subLinkName, subLinkURLs : $subLinkURL};
});
// Optionally, you could put the name and url in the array object here but not sure which is better to do
//$subLink =[];
//$('.linkSection').each(function(index, element) {
//$subLink.push($(this).find('#subLinkName').attr('value'));
//$subLink.push($(this).find('#subLinkURL').attr('value'));
//});
}else{
alert('hey');
$data = {linkName: $linkName, linkURL: $linkURL, linkID : $linkID, linkDescription : $linkInfo};
}
//alert($data);
$.ajax({
type: "POST",
data: {
method: "UpdateRegularLink",
returnFormat:"json",
formData: JSON.stringify($data)
},
url: "../../WebServices/RMSI/rmsi.cfc",
contentType: "application/json; charset=utf-8",
dataType: "json",
beforeSend: function() {
alert('about to post');
},
error: function(data,status,error){
alert(data+': '+status+': '+error);
},
done: function(data){
alert('success');
}
});
});
Server Side/CFC:
<cfcomponent>
<cfset xmlpath = "e:\webapps\NRCNewsApps\RMSI\xml" />
<cffunction name="UpdateRegularLink" access="remote" output="false" >
<cfargument name="formData" required="true" type="string" />
<cfset var cfStruct = DeserializeJSON(arguments.formData)>
<!--- now I want to use the data --->
</cffunction>
</cfcomponent>
Trong Chrome tôi nhận được "trái phép" Trong firebug tôi nhận được "nhân vật bất ngờ"
Chỉ cần hỏi tôi và tôi sẽ bổ sung thêm thông tin mà bạn cần.
là CFC của bạn được gọi là hay được các lỗi xảy ra trước khi cuộc gọi ajax? –
Url IMO được cung cấp phải là url: "../../WebServices/RMSI/rmsi.cfc?method=UpdateRegularLink" và phương pháp nên được xóa khỏi dữ liệu. Nếu URL kết thúc bằng phần mở rộng CFC, trình khám phá CFC sẽ khởi động và trả về một HTML của siêu dữ liệu chức năng có thể gây ra sự cố này –
Và có thể cfcexplorer đang yêu cầu ủy quyền. bạn có thể kiểm tra điều này bằng cách truy cập công cụ nhà phát triển> mạng để xem cfcexplorer đã được gọi hay chưa. –