Hi,
I am using Javascript serializer to send server side code to javascript.
This works in IE 9, Mozilla, chrome. But fails with error in Safari as "request failed. unexpected response from server. the status code of response is '0' . status text of the response is ". null
My code is as below:
<asp:UpdatePanel ID="panLayout" runat="server"> <ContentTemplate> <div id="divloadingImage" > <br /> <asp:Image ID="imgLoading" runat="server" ImageUrl="/images/rotate.gif" ImageAlign="Middle" /> <br /> </div> <div id="banner-fade" ><ul id="carousel" class="bjqs"></ul></div><asp:Timer ID="timerRSS" Interval="1" runat="server" ontick="timerRSS_Tick"></asp:Timer> </ContentTemplate> </asp:UpdatePanel>
In CS:
protected void timerRSS_Tick(object sender, EventArgs e)
{
DisplayImages();
divloadingImage.Visible = false;
bannerfade.Visible = true;
timerRSS.Enabled = false;
}
private void DisplayImages()
{
List<SharePointListItem> allImages = GetallImages();
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allImages);
string script = string.Format("<script type=\"text/javascript\">var allSliderImages={0}</script>", json);
if (!this.Page.ClientScript.IsClientScriptBlockRegistered("clientScripts"))
{
ScriptManager.RegisterClientScriptBlock(panLayout, panLayout.GetType(), "clientScripts", script, false);
}
string scriptRegister = string.Format("<script type=\"text/javascript\">FetchData();</script>");
ScriptManager.RegisterClientScriptBlock(panLayout, panLayout.GetType(), "clientScriptData", scriptRegister, false);
}In Javascript:
function FetchData() {
if (typeof allSliderImages !== "undefined") {
for (var i = 0; i < allSliderImages.length; i++) {
Imagesuccess(allSliderImages[i].fileleafref, allSliderImages[i].filedirref, allSliderImages[i].caption1);
}
}
var rota = $("#bannerfade");
rota.css("display", "block");
}
function Imagesuccess(fileLeaf, fileDir, UserCaption1) {
var ul = $('#bannerfade > ul');
var li;
var filename = fileLeaf;
var dir = fileDir;
var caption1 = UserCaption1;
var sfils = filename;
filename = dir + '/' + filename;
var imageCaptionData;
if (caption1 != null && caption1 != "") {
imageCaptionData = '<div class="HeadlineDiv">' + caption1 + '</div>';
}
li = $('<li>' + imageCaptionData + '<div class="SubHeadline" style="color:white;">' + '<br/></div>' + '<img src="' + filename + '"/>' + '</li>');
ul.append(li);
$('#bannerfade').bjqs({
height: 354,
width: 970,
responsive: true
});
}Below is the data I get:
<script type="text/javascript">
var allSliderImages=[{"id":"1","Title":"Scenic","caption1":"scenic","fileleafref":"02.jpg","filedirref":"/s/Test/Library"},
{"id":"2","Title":"nature","caption1":"scenic2","fileleafref":"C034.jpg","filedirref":"/s/Test/Library"},
{"id":"3","Title":"Tiff","caption1":"Tiff","fileleafref":"test_tiff.tif","filedirref":"/s/Test/Library"}]</script>The data is shown in all browsers except Safari. How to fix this?
Update: I have checked this link: http://sharepoint.sureshc.com/2013/07/unexpected-response-data-from-server-in.html
but that did not help.
Thanks